CData Arc の負荷分散と高可用性設定

EDI の世界に参入したばかりの中小企業には、より規模の大きい小売業者やヘルスケア分野のパートナーと連携するために、最小限の作業で構成できる軽量で簡単なソリューションが必要です。一方でエンタープライズユーザーは、毎日数十万のEDI トランザクションを処理することができる可用性の高いEDI ソリューションを求めています。CData Arc はスケーラビリティの高いEDI ソリューションであり、中小企業やエンタープライズユーザー、およびその間に位置するすべてのユーザーの多様なニーズをサポートするように構成できます。

CData Arc は、単一インスタンスでも簡単にほとんどのユーザーのニーズを満たすことができます。さらに、CData Arc はより複雑なシステムに組み込むこともでき、転送量とシステムの信頼性の両方がより要求される大規模なユーザーのビジネス案件にも対応できます。以下の記事では、高可用性と負荷分散環境でのCData Arc の構成について詳しく説明します。

負荷分散設定を使用すべき状況

CData Arc は、大量の受信接続を処理できるエンタープライズサービスアプリケーションであり、使用可能なシステムリソースを用いて受信リクエストを処理し、発信メッセージを転送します。マシン上で使用可能なRAM、CPU 速度、ネットワーク帯域、およびディスクスペースは、CData Arc が実行できる最大のスループットを制限する要因となり得ます。日々処理される取引件数が数十万に達する場合には、単一のエンドポイントですべての送信を処理するよりも、サーバーファームをセットアップする方が効率的です。

アプリケーションの複数インスタンスをデプロイする方がより効率的になる実際の取引件数は、設定の詳細によって異なる場合があります。通信を受信するには、送信よりも大きな負荷がかかります。また、ファイルが大きいほど高い処理能力が要求されます。これらのリソースの上限に達した場合、転送処理の負荷を分散するために、サーバーファームの複数のサーバー間でCData Arc を負荷分散する環境に切り替えることを検討してください。

高可用性設定を使用すべき状況

ほとんどの顧客にとっては、EDI サーバーが数時間または数日ダウンするリスクと、HA 構成のセットアップとメンテナンスにかかるコストの増加、という二点の比較が問題になります。 ネットワークサーバーリソースの電源が落ちたり、使用できなくなった場合にも最大の稼働時間を確保する必要がある場合には、サービスの中断を引き起こす可能性のある単一障害点がシステムに存在しないように、高可用性セットアップを作成します。この設定では、サーバーファームはほかのノードの一つに障害が発生した場合に受信リクエストを新しいノードにルーティングします。

必要な手順

CData Arc は、いくつかの異なる方法で負荷分散または高可用性の設定を行うことによって分散することができますが、いずれの場合にも達成すべき2つの目標があります。

  1. 複数のCData Arc インスタンスに受信トラフィックを分散するには、Web サーバーファームと負荷分散装置を設定する必要があります。

  2. 各アプリケーションが同じデータを使用し、同じログを保持するように、サーバーファーム内のCData Arc の各インスタンスを同期する必要があります。

この記事では、その両方を達成する方法について説明します。

サーバーファームとロードバランサの構成

サーバーファームのセットアップには、複数の方法があります。これらの方法は、アプリケーションのホストに使用しているWeb サーバーによって異なります。受信要求の負荷分散にも、使用できるオプションは複数あります。この記事では、Microsoft IIS(Internet Information Services)でWeb サーバーのサーバーファームを設定し、IIS のアプリケーション要求ルーティング(ARR)機能を使用してロードバランサとして機能させることに焦点を当てます(これはIIS の負荷分散です)。

Java サーバーファームをセットアップするには、Java Web サーバーのクラスタリングドキュメントを参照してください。

負荷分散のプロビジョニング

まず、サーバーファームのサーバーとして機能するマシンを割り当てます。また、ARR で負荷分散装置として機能するサーバーを割り当てることもできます。負荷分散サーバーには、Windows Server 2012 以降を実行しているサーバーの使用を推奨します。それによってARR 3.0 を活用することができます。

高可用性のプロビジョニング

ファーム内の各サーバーのデータを同期するには、これらのサーバーでファイルシステムリソースを共有する必要があります。これらのサーバーも共有データベースにアクセスする必要があるため、すべて同じドメインに属するサーバーを使用することをお勧めします。Web サーバーが同じドメイン上にない場合は、サーバー間でリソースの負荷分散を行うことができます。ただし、サーバーファームのサーバー間で、転送されたファイルとログを正常に同期できない場合があります。

ファームでのCData Arc のインストール

CData Arc をIIS Web アプリケーションとして、またはいくつかのJava Web サーバーに、デプロイする方法については、オンラインヘルプを参照してください。

ファーム内の各サーバーにCData Arc をインストールするには、ファーム内のサーバーごとに個別のライセンスが必要です。ただし、この機能をテストする場合は、初回インストール時にCData Arc の30 日間のトライアルライセンスを利用できます。

サーバーファームを構成したら、次のステップは、取引先との通信を設定してCData Arc のインストールを完了することです。現時点では、サーバーファームを構成するサーバーにCData Arc をインストールした後、負荷分散装置として機能するサーバーにARR 機能をインストールしてサーバーファームを構成します。

アプリケーションのリクエストルーティングの構成

Application Request Routing(ARR)は、Microsoft からWeb Platform Installer を介して取得できるIIS のオプション機能です。Web Platform Installer をダウンロードし、以下のようにARR 3.0 を検索します。

ARR 機能のインストールが完了すると、IIS マネージャーからアクセスできるIIS の新しいモジュールと、IIS マネージャーの「Connections」メニューの下に新しい「Server Farms」セクションが表示されます。

IIS サーバーファームの作成

IIS でサーバーファームを作成するには、次の手順に従ってください。

  1. 「Connections」ペインの「Server Farms」エントリを選択します。
  2. 「Actions」ペインで「Create Server Farm」を選択します。
  3. サーバーファームに名前を付けるように求められます。その後、個々のサーバーをそのファームのメンバーとして定義できます。ARR サーバーが存在するネットワーク上のサーバーにアクセスできる場合は、ネットワーク名またはIP アドレスで新しいサーバーを追加できます。
  4. サーバーファームで各マシンを構成したら、「Connections」の「Server Farms」セクションの下のエントリを選択することでサーバーファームを管理できるようになります。
  5. 「Health Test」メニューの選択肢から、ファーム内の各マシンの正常性をテストするURL を構成できます。

    CData Arc が取引先からの受信転送を受信する受信URL は、アプリケーションが動作しているかどうかを確認するために最適なURL です。このURL は、取引先が連絡の際に用いる情報が保存されているプロファイルから入手できます。

  6. 「Verify URL Test」をクリックすると、ファーム内の各ノードの状態をすばやく確認することができます。
  7. 「Load Balance」メニューで、受信リクエストの分散方法を管理できます。ファーム内のすべてのマシンが正常である場合、デフォルトの「Weighted round robin」の選択をおすすめします。

サーバーファームで複数のCData Arc インスタンスを同期する

インストールのこの時点で、Web サーバーファームに提供されているCData Arc の複数の異なるインストールが必要です。アプリケーションの各インスタンスで独自のリソースを個別に管理するには、次のステップに進んでください。

CData Arc の複数のインスタンスを同期させる場合、CData Arc が2つの重要な方法でローカルシステムとデータをやり取りすることに注意してください。

  1. データフォルダは、アプリケーションが使用する必要なファイルリソースを格納するために使用されます。このフォルダにはローカルおよびコネクタ構成プロファイルの構成ファイル、アプリケーションで使用される証明書、ポートで処理されるメッセージ、そして試行された操作のログファイルが含まれます。
  2. データベースは、処理されたメッセージのステータスに関する情報や、アプリケーション情報とアプリケーションによって記録された診断情報、そしてアクセスログを格納するために使用されます。

これらのデータのやり取りが起こる場所を、サーバーファーム内の各インスタンスと共有するには、CData Arc の各インスタンスで、既定のアプリケーションディレクトリ(データフォルダを含む)とアプリケーションデータベースを上書きする必要があります。CData Arc の各インスタンスに、アプリケーションディレクトリと同じディレクトリを設定し、アプリケーションデータベースと同じデータベースセットを設定する必要があります。

.NET 版では、アプリケーションのWeb.config ファイルでデータフォルダとデータベースの場所を上書きすることができます。同様に、以下で説明する環境変数を設定することによってJava Web サーバーを統合することができます。

注意:ファイルサーバーとデータベースがシステム上の単一障害点とならないよう、HA 構成で設計されたファイルサーバーとデータベースを指定してください。

アプリケーションの複数インスタンスでの共有アプリケーションディレクトリの使用

アプリケーションディレクトリは、サーバー構成ファイルで構成できます。

Windows/.NET

アプリケーションインストールパスの、\www フォルダでは、Web.config ファイルによってアプリケーションが実行時にロードするアプリケーション設定が決まります。このリソースの下部には、appSettings 要素のAppDirectory キーを参照するコメント付きセクションがあります。

    
  <appSettings>
    <add key="AppDirectory" value="\\FILESERVER\CData Arc\data" />
  </appSettings>

この設定は、ネットワークがアクセス可能なファイルシステム上の共有フォルダを指すように変更できます。設定が完了すると、CData Arc に追加された新しいパートナーがこのフォルダに作成されます。

この方法でUNC パスを使用するには、CData Arc をホストしているアプリケーションプールに、パスへのアクセス権を持つドメインユーザーアカウントをID として使用するように割り当てる必要があります。

IIS にデプロイする際に、アプリケーションプールを構成します。アプリケーションプールID を変更するには、以下のステップを実行します。

  1. 接続パネルでサイトのノードを展開し、アプリケーションプールを選択します。
  2. アプリケーションプールを右クリックし、詳細設定をクリックします。
  3. 表示されるダイアログで、ID プロパティの横にあるフィールドのボタンをクリックします。

既存のアカウントを指定するには、「Built-in account」を選択します。新しいアカウントを指定する際は、「Custom account」を選択して「Set」をクリックします。ドメインユーザーアカウントの資格情報を入力します。

Linux/Java

CData Arc のJava 版は、AppDirectory 環境変数の存在を確認し、アプリケーションのデータフォルダがホストされているネットワークパスを判別します。この変数は、startup.sh スクリプトを使用して設定することができます。さらに、Java アプリサーバーのサーバーオプションで定義したりすることもできます。例えば、Tomcat で「arcesb」 アプリケーションの変数を宣言するには、アプリケーション用server.xml のHost セクションに、新しいContext エントリを追加します。

    <Host>
        …
        <Context path="/arcesb">
            <Parameter name="APP_DIRECTORY" value="//FILESERVER/arcesb" override="false"/>
        </Context>
    </Host>

アプリケーションの複数インスタンスでの共有データベースの使用

CData Arc を複数のマシンでデプロイする場合には、CData Arc によって保持されるアクセスログやアプリケーションエラーなど、CData Arc によって処理される取引に関する情報をアプリケーションが格納する場所を管理する共有データベースを使用する必要があります。

Windows/.NET

「www」フォルダのweb.config ファイルには、appSettings 要素のAppDb キーを参照するコメント付きセクションも含まれています。

    
  <connectionStrings>
    <add 
      name="AppDb" 
      connectionString="server=SQLSERVER_LOCATION;database=DATABASE_NAME;uid=USER_ID;password=PASSWORD;" 
      providerName="System.Data.SqlClient"
      />
  </connectionStrings>  

この設定は、接続文字列の詳細をデータベースの有効な接続文字列に置き換えることで、SQL Server などのネットワークデータベースサーバーを指すように設定できます。 設定が完了すると、CData Arc を介して開始された新しい転送は、これらのログの適切なテーブルに追加されます。対応するテーブルが存在しない場合には、データベースに登録されます。

Linux/Java

CData Arc のJava 版ではAPP_DB 環境変数の存在を確認し、CData Arc がストレージに使用するデータベースの接続文字列を決定します。Java 構成では、SQL サーバーとMYSQL サーバーの両方がサポートされています。

この変数は、startup.sh スクリプトを使用して設定したり、Java アプリサーバーのサーバーオプションで定義したりすることもできます。例えば、Tomcat で「arcesb」アプリケーションの変数を宣言するには、アプリケーション用server.xml のHost セクションに、新しいContext エントリを追加します。

    <Host>
        …
        <Context path="/arcesb">
            <Resource name="jdbc/APP_DB" auth="Container" type="javax.sql.DataSource"
               maxActive="100" maxIdle="30" maxWait="10000"
               username="USER_ID" password="PASSWORD" driverClassName="com.mysql.jdbc.Driver"
               url="jdbc:mysql://MYSQL_LOCATION:3306/DATABASE_NAME"/>
        </Context>
    </Host>
    

次のステップ

これで、CData Arc の配置でリクエストの配布を開始する準備が整いました。次のステップでは、取引先との通信を設定し、CData Arc をEDI 処理にリンクします。取引先は、プロファイルに設定された情報をもとにあなたにアプローチします。取引先のプロファイルは、処理に使用されるコネクタに関連付けられています。

分散展開のその他のタスクには、各インスタンスへのプロファイルのエクスポートと、発信元パートナーへの非同期MDN(message disposition notifications)の正常なルーティングが含まれます。KB のビデオとガイドをご覧ください。



Ready to get started?

Use CData Arc's free 30-day trial to start building your own custom workflows today:

Download Now