Flex Gateway新着情報
Governance新着情報
Monitoring API ManagerSelect
最新バージョン: 1.12.0
Windows ゲートウェイサービスは、Windows プラットフォームの専用機能への接続を実現します。これは次のコネクタで使用されます。
Windows ゲートウェイサービスは、次のテクノロジーとフレームワークを使用しています。
ASP.NET Web API は、未処理のメッセージを送受信するための HTTP Web API を提供します。
OWIN は HTTP 層を提供します。Open Web Interface for .NET (OWIN) は、アプリケーションを Web サーバーの機能と切り離し、すべての HTTP 関連処理をホスティングプラットフォームから独立させるための層を提供するオープンな仕様です。
Katana は、OWIN アプリケーションの自己ホスティングおよび IIS ホスティングを処理する OWIN の Microsoft 実装を提供します。
Java 暗号化拡張機能
は、Mule がインストールされているサーバーにインストールされている必要があります。コネクタが HTTPS を使用して安全に通信するためには、JCE パッケージが必要です。Oracle Web サイトから各自の Java バージョンの JCE をインストールできます。
Windows Server 2008 R2 が動作しているサーバー上で TLS 1.2 を有効にするためには、適切なサブキー (Client や Server) で DisabledByDefault
エントリを作成して、「0」
に設定する必要があります。デフォルトではこのエントリはレジストリには表示されず、「1」
に設定されています。
TLS/SSL Settings (TLS/SSL 設定)
インストールには、Windows 2008 Server、Windows 2008 R2 Server、または Windows 2012 Server、および .NET Framework 4.5 以降が必要です。
Windows ゲートウェイサービスをインストールする手順は、次のとおりです。
ソフトウェアディストリビューションを展開します。
Anypoint-Windows-Gateway-Service.exe
ファイルをダブルクリックします。
[Options (オプション)] をクリックしてインストール場所を変更するか、または [Install (インストール)] をクリックしてインストールを開始します。
Windows ゲートウェイサービスと共に MSMQ または Windows PowerShell Connector を使用している場合、インストール時に表示される認証トークンをコピーして保存します。認証トークンは、Studio でそれらのコネクタの接続を設定するために使用されます。MSMQ または Windows PowerShell Connector を使用していない場合は、このステップをスキップしてください。
トークンをコピーしたら [Install (インストール)] をクリックします。
インストールが完了すると、readme.txt
ファイルを開いて追加の説明を表示するためのオプションが表示されます。
[Finish (完了)] をクリックして終了します。
インストールによって新しい Anypoint ゲートウェイ Windows サービスが作成され、インストーラーによって起動されます。
Windows 7 で実行中のサービスを表示するには、コントロールパネルの [表示方法] オプションが [小さいアイコン] に設定されている状態で、[コントロール パネル] > [管理ツール] > [サービス] を選択します。サービスが [Anypoint Gateway (Anypoint ゲートウェイ)] としてリストに表示されます。
インストール時に他のフォルダーを指定しない限り、Windows サービスはデフォルトで c:\Program Files(x86)\Anypoint Gateway for Windows
にインストールされます。このフォルダーには、Mule.SelfHost.exe
実行ファイル、Mule.SelfHost.exe.config
設定ファイル、および設定タスクを自動化する PowerShell スクリプトが入っています。
このフォルダーに設定ファイルが表示されない場合、Windows 7 では、コントロールパネルの [表示方法] オプションが [小さいアイコン] に設定されている状態で、[コントロール パネル] > [フォルダー オプション] > [表示] > [隠しファイル、隠しフォルダー、および隠しドライブを表示する] をクリックします。 |
実行ファイルは、新しい Web サーバーをポート 9333 (デフォルト) で開始します。このポートは、HTTPS を使用した安全な接続のみを受け入れます。ゲートウェイがリッスンするポート番号は、Mule.SelfHost.exe.config
設定ファイルの次の場所で変更できます。
<appSettings>
<!-- Configure the service to listen on the following address. -->
<add key="OwinHostAddress" value="https://+:9333/"/>
...
</appSettings>
...
<system.serviceModel>
<services>
<service behaviorConfiguration="routing"
name="System.ServiceModel.Routing.RoutingService">
<host>
<baseAddresses>
<add baseAddress="https://*:9333/router"/>
</baseAddresses>
...
</system.serviceModel>
xml
この Web サーバーは、インストール時に自動的に生成される自己署名 SSL 証明書を使用します。証明書は、[証明書 (ローカル コンピューター)] > [個人] > [証明書] に入っています。
Windows Server でインポートする有効な自己署名証明書を作成する例を次に示します。OpenSSL bin
フォルダーから OpenSSL を使用してコマンドを実行し、証明書を生成します。
openssl.exe req -x509 -nodes -days 730 -newkey rsa:2048 -keyout newcert.pem -out newcert.pem -config cert_with_san.txt
openssl.exe pkcs12 -export -out newcert.pfx -in newcert.pem -name "My Cert" -passout pass:mypassword
証明書 cert_with_san.txt
を bin
フォルダーにコピーする必要があります。
これにより、証明書を登録できます。自己署名証明書を使用している場合、SSL 警告を無視して、クライアントアプリケーションで使用される証明書をトラストストアに追加します。
cert_with_san.txt
のコンテンツは次のとおりです。(localhost または 127.0.0.1 で使用):
[req] distinguished_name = req_distinguished_name x509_extensions = v3_req prompt = no [req_distinguished_name] C = US ST = VA L = Somewhere O = MyOrg OU = MyOU CN = Anypoint Gateway [v3_req] keyUsage = keyEncipherment, dataEncipherment extendedKeyUsage = serverAuth subjectAltName = @alt_names [alt_names] DNS.1 = localhost DNS.2 = 127.0.0.1 IP.1 = 127.0.0.1 IP.2 = 127.0.0.1
text
Windows サービスは、自己ホスト型 Web サーバーの http.sys
に依存するため、ポート番号や SSL 証明書を変更した場合は、Windows の再設定が必要です。この作業は、インストールディレクトリにある Register-SslCert.ps1
PowerShell スクリプトが行います。ポートまたは証明書を変更した場合は、PowerShell コンソールから次のコマンドを実行してください。
Register-SslCert.ps1 <certificate-thumbprint> <windows-account> <port>
<certificate-thumbprint>
: SSL 証明書のサムプリント。ローカルストアアカウントの Personal フォルダーに格納する必要があります。
<windows-account>
: ポートを登録する権限を受け取る Windows ユーザーまたはグループ。Windows サービスやコンソールアプリケーションを偽装するアカウントは、このグループに属している必要があります。
<port>
: 設定ファイルで設定した HTTP ポート (デフォルトは 9333)。
例:
Register-SslCert.ps1 a495cbf8c4af496f1ef81efb224c8097d039f922 everyone 9333
Mule ESB で実行中の MSMQ および PowerShell Connector について、サービスは最初に HTTP 認証ヘッダーを調べることで、呼び出しを認証します。
認証は、両方のコネクタで使用される一意のセキュリティトークンによって行われます。このトークンは、Mule スキームを使用してゲートウェイに送信されるすべての HTTP 要求に含まれます。
次の例は、MSMQ がゲートウェイを使用して、このセクションで指定されているようにセキュリティトークンを送信することで特定のキューに接続する方法を示しています (同じ認証ヘッダーが PowerShell に適用されます)。
GET: https://localhost:9333/msmq?count=50 Authorization: mule 3nGdw7W+G1fSO2YBEHDmpo4N1Tg= Mule-Msmq-Queue-Name: .\private$\out Mule-Api-Version: 1.0
text
認証トークンは、コネクタとゲートウェイ設定ファイルで一致する必要があります。次の例は、ゲートウェイ設定ファイルの Mule.SelfHost.exe.config
でトークンがどのように設定されるかを示しています。
<appSettings>
<!-- Token that must be sent by the Mule connector's client in the Authorization header when accessing the Rest Api. -->
<add key="mule-auth-token" value="3nGdw7W+G1fSO2YBEHDmpo4N1Tg="/>
</appSettings>
xml
Mule ESB で実行されるコネクタを設定するときは、[Gateway Access Token (ゲートウェイアクセストークン設定)]
(コネクタの XML 設定にある accessToken
属性) で認証トークン値を設定する必要があります。
Windows ゲートウェイサービスインストーラーは、インストール時に、コーラーが使用する暗号化されたセキュアトークンを自動的に生成します。このトークンは、Mule アプリケーションに簡単にコピーできるように、インストール中に表示され、クリップボードに格納されます。 |
ゲートウェイが処理するコネクタの代わりにコールを実行するユーザーは、2 つのカスタム HTTP ヘッダーである mule-impersonate-username
と mule-impersonate-password
によって認証されます。
これらの 2 つのヘッダーは、Windows ゲートウェイサービスが動作している Active Directory フォレストにある既存ユーザーの Windows ログイン情報、またはサービスをホストしているマシンのローカルアカウントの Windows ログイン情報を表します。これらの HTTP ヘッダーが HTTP 要求に含まれている場合、Windows ゲートウェイサービスはこのユーザーを認証して偽装してから、コネクタが必要とする操作を実行します。これにより、Windows ログイン情報を使用して正しいアクセス制御リスト権限を設定できます。
次の図は、MSMQ Connector とゲートウェイとのインタラクションと、使用する主なコンポーネントを示しています。
次の表には、MSMQ Connector の設定が記載されています。
プロパティ | 使用方法 |
---|---|
invalid-queue-name |
読めないメッセージの移動先となるキューの名前。 |
transaction-timeout |
コネクタによって取得された時点からのメッセージの処理タイムアウト。クリーンアップタスクがタイムアウトの時間切れになったメッセージを見つけると、メインキューに戻して再び使用できるようにします (詳細は、コネクタガイドの 2 段階コミットのセクションを参照してください)。 |
invalid-message-timeout |
メッセージのペイロードが不適切なフォーマッターで解析された場合の無効なメッセージのタイムアウト。 |
cleanup-delay |
メッセージが処理用に取得されてから、クリーンアップタスクが時間切れになったメッセージを探し始めるまでの遅延時間 (詳細は、コネクタガイドの 2 段階コミットのセクションを参照してください)。 |
cleanup-username |
(省略可能) クリーンアップタスクを実行する際に偽装するユーザー。この設定を空白にすると、サービスを実行しているユーザーアカウントが使用されます。 |
cleanup-password |
(省略可能) クリーンアップタスクを実行する際に偽装するユーザーのパスワード。 |
キューで認証が必要であるとマークされている場合、cleanup-username
設定パラメーターで指定されているようにコーラーユーザーを偽装することができます。これに加えて、リモートキューを使用している場合は、この動作を上書きするための特別なヘッダーがコネクタにあります (詳細は、コネクタガイドを参照してください)。
Windows ゲートウェイサービスは、フォールトトレランスを高めるために負荷分散設定での動作をサポートしています。複数のゲートウェイサービスインスタンスを実行する場合は、重複しない間隔で MSMQ バックグラウンドジョブを実行するように各メンバーを設定する必要があります。
MSMQ バックグラウンドジョブの処理は、デフォルトでは正時から 10 分間隔で実行されます。負荷分散設定において、複数のゲートウェイインスタンスが同時にキューのクリーンアップを実行しないようにするには、cleanup-delay
と呼ばれる設定を、ゲートウェイインスタンスごとに行う必要があります。この場合に各マシンで推奨される値は (10 / instanceCount) * (instanceNumber - 1) で、instanceNumber は 1 … n の整数です。
例:
マシンが 2 台のクラスターでは、cleanup-delay
をマシン 1 では 0、マシン 2 では 5 に設定します。
マシンが 3 台のクラスターでは、cleanup-delay
をマシン 1 では 0
、マシン 2 では 3
、マシン 3 では 6
に設定します。
このオフセットが正しく適用されるように、NTP や同等のメカニズムでマシンのクロックを同期させます。
cleanup-delay
設定は Mule.SelfHost.config
ファイルにあります。
<appSettings>
<!-- MSMQ: Delay in minutes to launch the cleanup process for sub-queues -->
<add key="cleanup-delay" value="0"/>
</appSettings>
xml
LB 設定において、関与するノード (MSMQ、ゲートウェイ) がワークグループに属していてドメインには結合されていない場合には、ゲートウェイサービスを「管理者として実行」するように設定する必要があります。同じドメインに結合した場合は、ドメイン管理者は関与する各ノードとオブジェクト (キュー) の権限を適切に設定する必要があります。 |
バージョン情報については、『MSMQ Connector のリリースノート』を参照してください。
MSMQ Connector についての詳細は、3.9@mule-runtime::msmq-connector.adoc[『MSMQ Connector User Guide (MSMQ Connector ユーザーガイド)』]を参照してください。
このコネクタには、[Security Considerations]の一般設定以外に固有の設定はありません。
バージョン情報については、『Windows Powershell Connector のリリースノート』を参照してください。
Windows PowerShell Connector についての詳細は、『Windows PowerShell Connector Guide (Windows PowerShell Connector ガイド)』を参照してください。
Mule.SelfHost.exe.config 設定ファイルの <system.serviceModel> セクションにあるサービス設定は変更しないでください。このセクションには、関連するコネクタにルーティングサービスを提供するために必要な設定が含まれています。
|
サービスが提供されるポートを変更する場合、[Configuring the Anypoint Gateway]セクションで説明されているように、そこで設定されている URL 内の baseAddress
ポート番号を更新し、SSL の証明書を登録して変更を完了できます。
次の設定セクションは、これらのコネクタに影響します。
<system.serviceModel>
<services>
<service behaviorConfiguration="routing"
name="System.ServiceModel.Routing.RoutingService">
<host>
<baseAddresses>
<add baseAddress="https://*:9333/router"/>
</baseAddresses>
...
</system.serviceModel>
xml
Dynamics CRM および AX Connector の設定セクションで説明されているルーティングサービス設定に加えて、このコネクタには固有の設定があります。
次の表には、CRM Connector の設定が記載されています。
プロパティ | 使用方法 |
---|---|
CRM.MaxReceivedMessageSize |
Microsoft Dynamics CRM Server に接続されたチャネルで処理される受信メッセージの最大サイズ (バイト)。詳細は、 「BasicHttpBinding.MaxReceivedMessageSize プロパティ」 |
CRM.MaxBufferSize |
Microsoft Dynamics CRM Server に接続されたチャネルからのメッセージを保存するために使用されるバッファの最大サイズ (バイト)。詳細は、 「BasicHttpBinding.MaxBufferSize プロパティ^」 |
バージョン情報については、『Microsoft Dynamics CRM のリリースノート』を参照してください。
CRM Connector についての詳細は、『Microsoft Dynamics CRM Connector Guide (Microsoft Dynamics CRM Connector ガイド)』を参照してください。
Dynamics CRM および AX Connector の設定セクションで説明されているルーティングサービス設定に加えて、このコネクタには固有の設定があります。
次の表には、AX Connector の設定が記載されています。
プロパティ | 使用方法 |
---|---|
AX.Metadata.MaxReceivedMessageSize |
メタデータサービスを対象とした Microsoft Dynamics AX Server に接続されたチャネルで処理される受信メッセージの最大サイズ (バイト) ( NetTcpBinding.MaxReceivedMessageSize プロパティ |
AX.Metadata.MaxBufferSize |
メタデータサービスを対象とした Microsoft Dynamics AX Server に接続されたチャネルからのメッセージを保存するために使用されるバッファの最大サイズ (バイト) ( NetTcpBinding.MaxBufferSize プロパティ |
AX.Metadata.ReceiveTimeout |
メタデータサービスを使用している間の受信操作が完了するまでの猶予期間を指定する値 (ミリ秒)。この値は 0 より大きくする必要があります ( Binding.ReceiveTimeout プロパティ |
AX.Metadata.SendTimeout |
メタデータサービスを使用している間の送信操作が完了するまでの猶予期間を指定する値 (ミリ秒)。この値は 0 より大きくする必要があります ( Binding.SendTimeout プロパティ |
AX.Query.MaxReceivedMessageSize |
クエリサービスを対象とした Microsoft Dynamics AX Server に接続されたチャネルで処理される受信メッセージの最大サイズ (バイト) ( NetTcpBinding.MaxReceivedMessageSize プロパティ |
AX.Query.MaxBufferSize |
クエリサービスを対象とした Microsoft Dynamics AX Server に接続されたチャネルからのメッセージを保存するために使用されるバッファの最大サイズ (バイト) ( NetTcpBinding.MaxBufferSize プロパティ |
AX.Query.ReceiveTimeout |
クエリサービスを使用している間の受信操作が完了するまでの猶予期間を指定する値 (ミリ秒)。この値は 0 より大きくする必要があります ( Binding.ReceiveTimeout プロパティ |
AX.Query.SendTimeout |
クエリサービスを使用している間の送信操作が完了するまでの猶予期間を指定する値 (ミリ秒)。この値は 0 より大きくする必要があります ( Binding.SendTimeout プロパティ |
AX.DocServices.MaxReceivedMessageSize |
ドキュメントサービスを対象とした Microsoft Dynamics AX Server に接続されたチャネルで処理される受信メッセージの最大サイズ (バイト) ( NetTcpBinding.MaxReceivedMessageSize プロパティ |
AX.DocServices.MaxBufferSize |
ドキュメントサービスを対象とした Microsoft Dynamics AX Server に接続されたチャネルからのメッセージを保存するために使用されるバッファの最大サイズ (バイト) ( NetTcpBinding.MaxBufferSize プロパティ |
AX.DocServices.ReceiveTimeout |
ドキュメントサービスを使用している間の受信操作が完了するまでの猶予期間を指定する値 (ミリ秒)。この値は 0 より大きくする必要があります ( Binding.ReceiveTimeout プロパティ |
AX.DocServices.SendTimeout |
ドキュメントサービスを使用している間の送信操作が完了するまでの猶予期間を指定する値 (ミリ秒)。この値は 0 より大きくする必要があります ( Binding.SendTimeout プロパティ |
バージョン情報については、『Microsoft Dynamics AX のリリースノート』を参照してください。
AX Connector についての詳細は、『Microsoft Dynamics AX Connector Guide (Microsoft Dynamics AX Connector ガイド)』を参照してください。
Windows ゲートウェイサービスは、組み込み .NET トレースシステムを活用します。トレースメッセージはスイッチ経由でリスナーに送信され、特定のストレージメディアに連結されます。コネクタが使用するトレースソースのリスナーは、設定ファイルで指定します。
<sharedListeners>
<add name="console" type="System.Diagnostics.ConsoleTraceListener" />
<add name="file" type="System.Diagnostics.TextWriterTraceListener" initializeData="mule.gateway.log" />
<add name="etw" type="System.Diagnostics.Eventing.EventProviderTraceListener, System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" initializeData="{47EA5BF3-802B-4351-9EED-7A96485323AC}" />
</sharedListeners>
<sources>
<source name="mule.gateway">
<listeners>
<clear />
<add name="console" />
<add name="etw"/>
</listeners>
</source>
</sources>
xml
上の例では、出力コンソール用、ファイル用、そして Windows イベントトレーシング (ETW) 用に 3 つのリスナーを設定しています。mule.gateway
コネクタ用のトレースソースは、コンソールと ETW にのみトレースを出力するように設定されています。
Windows ゲートウェイサービスは、[Information (情報)] イベントをログに記録するように設定されています。この設定は <switches>
要素で行います。すべてをログに記録する場合は、トレースレベルを下記の設定要素で [Verbose (冗長)] レベルに変更してください。
設定ファイルのスイッチレベルでレベルを設定します。
<switches>
<add name="mule.gateway" value="Information" />
</switches>
xml
他にも次のレベルが使用できます。
Error (エラー): エラー処理メッセージを出力
Warning (警告): 警告とエラー処理メッセージを出力
Information (情報): 情報メッセージ、警告、およびエラー処理メッセージを出力
Off (オフ): トレースを無効化
(CRM および AX Connector の) Windows ゲートウェイサービス内のルーティングサービスをトレースまたはデバッグする場合は、ルーティングサービスの接続時に生成されたエラーの詳細を取得するための設定を有効にします。この情報をトレースリスナーで取得するには、serviceDebug
要素の includeExceptionDetailInFaults
属性で有効にします。これを行うには、その値を true に設定します。
<serviceBehaviors>
<behavior name="routing">
...
<serviceDebug includeExceptionDetailInFaults="true" />
</behavior>
</serviceBehaviors>
xml
この設定は、サービスが返すエラーメッセージを拡張して、原因の内部スタックトレースを追加します。このことが、場合によっては問題を理解するのに役立つ可能性があります。
問題のトラブルシューティングに役立つ手段の 1 つは、コンソール
リスナーを有効にして (デフォルトでは有効ですが、有効ではない場合には、上記のリスナーセクションに追加する必要があります)、Windows ゲートウェイサービスをコマンドラインから実行することです。コンソールでは、要求、応答、警告/エラーなど、トレースされている情報をリアルタイムで見ることができます。コネクタがゲートウェイに正しく接続されているかどうかを確認したり、障害につながる可能性がある、考えられる他の原因を確認したりするのに便利です。
コンソール
リスナーが有効になっていない場合は、リスナーコレクションに追加することで有効にする必要があります。
<sources>
<source name="mule.gateway">
<listeners>
<clear />
<add name="console" />
...
</listeners>
</source>
</sources>
xml
コマンドラインからこれを実行するには、まず Anypoint ゲートウェイ
サービスを停止し、次にそれがインストールされているフォルダー (デフォルトでは c:\Program Files(x86)\Anypoint Gateway for Windows
) に移動して、Mule.SelfHost.exe
アプリケーションを実行します。コンソールが実行され、イベントのトレース結果がリアルタイムで表示されます。
トラブルシューティングが完了したら、コンソールを閉じて Windows サービスを再起動してください。
Windows イベントトレーシング (ETW) は、カーネルレベルでイベントのトレースを実行する非常に効率的な組み込みパブリッシュ/サブスクライブメカニズムです。I/O に依存してファイルやデータベースなどに永続的に保存する従来のトレースソリューションと比較して、この機能を使用するにあたってオーバーヘッドはほとんどありません。Windows の組み込みメカニズムであるため、オペレーティングシステムの多くのサービスやコンポーネントもこの機能を使用しています。そのため、トラブルシューティングの対象は、アプリケーションだけではなく、同じ実行中に関与する多くの OS コンポーネントにも及びます。
ETW では、一部のアプリケーションがイベントをキュー (プロバイダー) にパブリッシュし、他のアプリケーションが ETW セッションを介してリアルタイムでこれらのキューからイベントをコンシュームします。プロバイダーでイベントがパブリッシュされると、そのキューからイベントを収集するセッションが発生しない限り、イベントはどこにも行きません。(イベントは持続的ではありません。)
.NET のトレースシステムには、ETW 用のトレースリスナーである EventProviderTraceListener
があり、ETW がトレースを収集するために使用するセッション識別子で設定できます。
<sharedListeners>
<add name="etw"type="System.Diagnostics.Eventing.EventProviderTraceListener, System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" initializeData="{47EA5BF3-802B-4351-9EED-7A96485323AC}"/>
</sharedListeners>
xml
この例では、この識別子にセッションが関連付けられています。
{47EA5BF3-802B-4351-9EED-7A96485323AC}
セッショントレースを収集する手順は、次のとおりです。
Windows コンソールを開いて、次のコマンドで新しいセッションを開始します。
logman start mysession -p {47EA5BF3-802B-4351-9EED-7A96485323AC} -o etwtrace.etl -ets
次のコマンドを実行してセッションを停止します。
logman stop mysession -ets
トレースセッションデータが入った etwtrace.etl
ファイルが生成されます。
次のコマンドで、人間が読めるファイルを生成します。
tracerpt etwtrace.etl
このコマンドは、有益な情報を dumpfile.xml
というテキストファイルに転送します。
詳細は、 「Tracerpt^」を参照してください。