前提条件

IBM Sterling® Order Managementシステムと外部システム間の MQの統合をセットアップするための前提条 件は、このトピックに記載されています。

  • お客様のリモート・パブリック IP アドレスが IBMによって有効にされている必要があります。 詳しくは、 ネットワーク・ファイアウォール・ポリシーの情報を参照してください。 IBM Sterling Order ManagementSystemへの接続が VPN または直接リンクを介している場合、ドメインまたは IP の有効化は必要ありません。 IBM Sterling Order ManagementSystem MQQMGR への接続とMQQMGR リスニングポートが利用可能かどうかをテストするには、telnet,nc,nmapまたは同様のコマンドを実行します。 以下の例を参照してください。
    
    telnet <client>-oms.<environment>.coc.ibmcloud.com 1415
    nc -v <client>-oms.<environment>.coc.ibmcloud.com 1415
    nmap -sT <client>-oms.<environment>.coc.ibmcloud.com -p 1415
  • MQI チャネルは、チャネル認証/メッセージ暗号化のためにIBM Sterling Order ManagementSystem MQServer 自己署名 SSL 証明書を使用する。 SSL 証明書は、 IBM Cloud Dropbox または SI DEV Team IBM Box エリアからダウンロードできます。
  • IBM Sterling Order Management System-MQ 接続性と機能性をテストし確認するために、標準 IBM MQ Client を SI Team が顧客の統合ポイントにインストールすることを強く推奨する。
    注: MQ エクスプローラーはサポートされていません。
  • IBM MQ クライアント構成は、以下のようになっている必要があります。
    
        JMS Server Type :  IBM MQ
        Connection Type :  Single Connection
        Hostname : OMoC public domain name or public IP                                            
                   <cust>-oms.<env>.coc.ibmcloud.com
        Port : 1415
        Queue Manager : OM_QMGR
        Channel : SYSTEM.SSL.SVRCONN
        Use SSL : Yes
        SSL Cipher : TLS_RSA_WITH_AES_128_CBC_SHA256

    ここで、 Hostname env = dev, qa, preprod, prodです。

    注: この構成は、 IBM MQ Client 用です。 サード・パーティー・ミドルウェアの場合、必要に応じて SSL 暗号項目を修正する必要がある場合があります。 IBM MQ SSL 互換性のために必要な Java クラス・ライブラリーおよび暗号仕様については、サード・パーティー・ミドルウェアの資料を参照してください。
  • デフォルトのMQクライアント・チャネルが使用されるIBM Sterling Order ManagementSystemプラットフォームとのクライアント統合の一部として、IBM Sterling Order ManagementSystemがクライアントが作成したキューに置かれたメッセージを消費し処理できることを確実にするために、特定のMQメッセージ・ヘッダー・パラメータと値を指定する必要があります。 IBM Sterling Order Managementシステムは、テキストベースのメッセージを消費するように構成されている。 メッセージの形式は、 Format : 'MQSTR' でなければなりません。
    SI チームは、標準の MQ Client を使用して、ヘッダーの詳細が表示されるキュー内のメッセージを参照することを強くお勧めします。 IBM Sterling Order ManagementSystem消費用の正しく形成されたヘッダーの例は以下の通りである:
    
    StrucId : 'MD ' Version : 2
    Report  : 64 MsgType : 8
    Expiry  : -1 Feedback : 0
    Encoding : 273 CodedCharSetId : 1208
    Format : 'MQSTR'
    Priority : 5 Persistence : 1
    MsgId : X'414D51204F4D5F514D47522020202020520CB65BE5F15A2C'
    CorrelId : X'D34DF8E3CE78FDD69E6FFE386B8FDB7F4EBF73D7766F8F77'
    BackoutCount : 0
    ReplyToQ : '       '
    ReplyToQMgr : 'OM_QMGR'   
    
    表 1. メッセージ記述子
    フィールド 説明
    StrucId メッセージ記述子構造体の ID。 MDに設定する必要があります。
    Version これは構造体のバージョン番号であり、2 に設定する必要があります。
    MsgType これは、メッセージのタイプを示します。 値 8 は、タイプが MQMT_DATAGRAMであることを示します。これは、メッセージが応答を必要としないことを意味します。 その他のメッセージ・タイプについては、 MQMT_ * (メッセージ・タイプ) を参照してください。
    Expiry これは 10 分の 1 秒単位で表される期間で、メッセージを書き込むアプリケーションによって設定されます。 この期間が経過する前にメッセージが宛先キューから除去されない場合、メッセージは廃棄される可能性があります。 詳しくは、 有効期限 (MQLONG)を参照してください。 値が-11の場合、そのメッセージは期限切れにならない。
    Feedback このフィールドは、レポートの性質を示すためにタイプ MQMT_REPORT のメッセージに使用され、そのタイプのメッセージでのみ意味があります。 0 に設定する必要があります。これは、フィードバックが提供されないことを意味します。 詳しくは、 Feedback (MQLONG) を参照してください。
    Encoding

    これは、メッセージ内の数値データの数値エンコードを指定します。 MQMD 構造体自体の数値データには適用されません。 数値エンコードは、2 進整数、パック 10 進整数、および浮動小数点数に使用される表現を定義します。

    MQENC_NATIVE は、アプリケーションが実行されているプログラミング言語およびマシンのデフォルト・エンコードです。
    注: この定数の値は、プログラミング言語と環境によって異なります。 このため、アプリケーションは、アプリケーションが実行される環境に適したヘッダー・ファイル、マクロ・ファイル、 COPYファイル、または INCLUDE ファイルを使用してコンパイルする必要があります。

    メッセージを書き込むアプリケーションは通常、 MQENC_NATIVEを指定します。 メッセージを取得するアプリケーションは、このフィールドを MQENC_NATIVEの値と比較する必要があります。 値が異なる場合、アプリケーションはメッセージ内の数値データを変換しなければならない可能性があります。 MQGET 呼び出しの処理中にメッセージを変換するようにキュー・マネージャーに要求するには、 MQGMO_CONVERT オプションを使用します。

    MQENC_NATIVE 定数は ここで定義されます。 ご使用のオペレーティング・システムに合った正しい値を調べてください。
    CodedCharSetId このフィールドは、メッセージ本体内の文字データの文字セット ID を指定します。 UTF-8 の場合は 1208 に設定します。 その他の文字セットの場合は、この 技術情報 に従って CCSID を判別してください。
    Format これは、メッセージの送信側がメッセージ内のデータの性質を受信側に示すために使用する名前です。 JMSTextMessageの動作を模倣するには、 MQSTR に設定します。 詳しくは、 形式 (MQCHAR8) を参照してください。形式のリストについては、MQFMT_ * (形式) を参照してください。
    Priority

    キューにメッセージを PUT するときに、このフィールドにメッセージの優先順位を設定します。 優先順位に数値を設定するか、メッセージにキューのデフォルト優先順位を使用させることができます。

    キューの MsgDeliverySequence 属性は、キュー内のメッセージが FIFO (先入れ先出し) の順序で保管されるか、優先順位内の FIFO で保管されるかを決定します。
    • この属性が MQMDS_PRIORITYに設定されている場合、メッセージは、メッセージ記述子の Priority フィールドに指定された優先順位でエンキューされます。
    • この属性が MQMDS_FIFOに設定されている場合、メッセージはキューのデフォルト優先順位でエンキューされます。 同じ優先順位のメッセージは、到着順にキューに保管されます。 デフォルトでは、IBM Sterling Order ManagementSystem環境では、定義された各キューに以下の値が存在する:
      
      DEFPRTY(0)
      MSGDLVSQ(PRIORITY) 
    0 (最低) から 9 (最高) までの優先順位でメッセージを作成できます。

    MQPUT 呼び出しおよび MQPUT1 呼び出しの場合、値は 0 以上でなければなりません。0 は最も低い優先順位を示します。 JMSTextMessageの動作を模倣するには、5 に設定します。 詳しくは、 優先順位 (MQLONG) を参照してください。

    Persistence このフィールドは、メッセージがシステム障害およびキュー・マネージャーの再始動後も存続するかどうかを示します。 メッセージがシステム障害およびキュー・マネージャーの再始動後も存続するようにするには、1 に設定します。 詳しくは、「 パーシスタンス (MQLONG)」を参照してください。 許可される値のリストについては、 MQPER_ * (パーシスタンス値) を参照してください。
    MsgId これは、あるメッセージを別のメッセージと区別するために使用されるバイト・ストリングです。 通常、2 つのメッセージが同じメッセージ ID を持つことはありませんが、これはキュー・マネージャーによって許可されません。 メッセージ ID はメッセージの永続プロパティーであり、キュー・マネージャーを再始動しても持続します。 メッセージ ID は文字ストリングではなくバイト・ストリングであるため、メッセージがあるキュー・マネージャーから別のキュー・マネージャーに流れる場合、メッセージ ID は文字セット間で変換されません。 詳しくは、 MsgId (MQBYTE24) を参照してください。
    CorrelId このフィールドは、特定のメッセージまたはメッセージ・グループを識別するために使用されるメッセージ・ヘッダー内のプロパティーです。 これは、アプリケーションが 1 つのメッセージを別のメッセージに関連付けたり、アプリケーションが実行している他の作業にメッセージを関連付けたりするために使用できるバイト・ストリングです。 相関 ID はメッセージの永続プロパティーであり、キュー・マネージャーを再始動しても持続します。 相関 ID は文字ストリングではなくバイト・ストリングであるため、メッセージがあるキュー・マネージャーから別のキュー・マネージャーに流れる場合、相関 ID は文字セット間で変換されません。
    BackoutCount これは、メッセージが以前に MQGET 呼び出しによって作業単位の一部として戻され、その後でバックアウトされた回数のカウントです。 これは、アプリケーションがメッセージ内容に基づいて処理エラーを検出するのに役立ちます。 このフィールドの初期値は 0 です。 詳しくは、 BackoutCount (MQLONG) を参照してください。
    ReplyToQ これは、メッセージの GET 要求を発行したアプリケーションが MQMT_REPLY および MQMT_REPORT メッセージを送信する先のメッセージ・キューの名前です。 ReplyToQMgr フィールドがブランクの場合、ローカル・キュー・マネージャーは独自のキュー定義で ReplyToQ 名を検索します。 詳細はReplyToQ(MQCHAR48)を参照
    ReplyToQMgr これは、応答メッセージまたはレポート・メッセージの送信先となるキュー・マネージャーの名前です。 詳細については、ReplyToQMgr(MQCHAR48)を参照してください