2016-07-13 9 views
0

はじめに

外部の人と収益データを交換します。毎年所得税規制が変更され、新しいメッセージスキーマが実装されなければなりません。全体として8つの異なるスキーマバージョンがあり、それぞれが別々の「所得税申請書」に展開されており、この金額は毎年1つずつ増加しています。MQSeriesアダプタを使用してBizTalk送信ポートにエンドポイント定義を動的に設定する

インストールされているアプリケーションごとにホスティング会社に支払うので、インストールするアプリケーションの量を減らしたいと考えています。

これらのアプリケーションはすべて機能的に同等です。つまり、着信メッセージを検証し、有効なメッセージを特定のMQSeriesキューに転送します。それぞれの無効なメッセージは、応答キューにルーティングされます。各アプリケーションには、独自の「有効な」メッセージキューと「無効な」メッセージキューがあります。全8(+)のメッセージを処理

計画

一つの汎用アプリケーション。新しいスキーマは、以前の実行中の「収入年度税」フローのアプリケーション変更やダウンタイムなしに導入可能でなければなりません。私は同じのBizTalk上で複数のメッセージを受け取ることができます

これまでのところは...(MessageTypeのXmlDocumentオブジェクト)ポートを受け取り、カスタムパイプライン(XML逆アセンブラ+ XMLを受け取る呼び出すことにより、オーケストレーションで動的にこれらのメッセージを確認することができていますバリデーター)。例外および有効なメッセージは、規定どおりに処理されます。スキーマと汎用アプリケーションの間には参照がないため、実行中のプロセスを停止することなくスキーマをデプロイできます。ここまでは順調ですね。

オーケストレーションには1つの受信シェイプがあり、2つのシェイプ(有効、無効)が送信されます。

SSOには、「有効な」メッセージと「無効な」メッセージを正しいキューにルーティングするための値が含まれています。受信メッセージタイプに基づいて、SSOは正しい「有効」または「無効」のqueuedefinitionについて質問されます。

私は以前、すべてが正しいコンテキストのプロパティでアダプターを供給した後、完璧に働いたダイナミックFTP、FILE、WCFとSMTPポート、扱っている問題

。 MSMQでも、トランスポートプロパティを動的に設定する方法はかなり単純です。

しかし、キュー定義を動的に設定するMQSeries MQMT ContextPropertiesが見つからないようです。

マイクロソフトではthisについて多くの情報を提供していません。また、インターネット上での広範な検索で役立つものはありません(例)。

私はIBM's docsとマイクロソフトのマッチングを試みましたが、今は詰まっています。

答えて

1

IBM MQ統合にMQSCアダプタを使用することをお勧めします。これはHost Integration Server MSIの一部です。これは、MQクライアントがサーバーにインストールされていることを必要とします。

設定し、次の形式のMQSCでOutboundTransportLocationプロパティ:// {CHANNELNAME}/TCP/{サーバー{({ポート})/ {queuemanager}/{QUEUENAME}

TransportType = MQSC

コンテキストプロパティ - スキーマは、ネーム・スペース(http://schemas.microsoft.com/BizTalk/2003/mqs-properties)を持つMQSeriesEx.MQSPropertySchemaExアセンブリー内にあります。

必要な場合は、設定する必要があるコンテキストプロパティはほとんどありません。

  • Channel_HeartBeat
  • Channel_MaxMessageLength
  • Channel_UserId
  • Channel_Password
  • のConnectionTimeout

追加のプロパティをMQSeries.MQSPropertySchemaコンテキスト特性を使用するよりも、必要とされる場合。

0

ありがとうございましたVikasあなたのご提案に感謝します。 あなたの指示に従って、それが動作することを発見しました!

しかし、私はそれが私が各フローのチャネル名を設定するのを必要とするので、必要以上に複雑であることがわかりました。

私に最も適した解決策は、私が一貫して心に留めていた解決策でした。それは私の前にありました。ダイナミックな送信ポートのプロパティを設定する必要がある、送信メッセージのプロパティを設定することで致命的な間違いが発生したため、私の試行は失敗しました。

SendPort(Microsoft.XLANGs.BaseTypes.Address)="MQS://SERVER/QMANAGER/QUEUENAME"; 
関連する問題