Hitachi

Cosminexus V11 BPM/ESB基盤 サービスプラットフォーム 解説


2.2.4 Webサービス(SOAP通信)の場合のCookie情報

ビジネスプロセスからSAP ERP 6.0上のサービスを呼び出す場合,更新系の処理によって返却されたCookie情報を引き継ぐ必要があります。SAP ERP 6.0以外のサービスを呼び出す場合,Cookie情報の引き継ぎは不要です。

SAP ERP 6.0上のサービスを呼び出す場合で,Cookie情報を引き継ぐには,HCSCランタイム定義ファイルのcookie-parsingプロパティの指定によって,Cookie情報の引き継ぎを有効にする方法と,ビジネスプロセスのヘッダ割当変数にHTTPヘッダ名を設定する方法があります。ビジネスプロセスのヘッダ割当変数にHTTPヘッダ名を設定する方法の詳細については,「2.2.5 Webサービス(SOAP通信)の場合のHTTPヘッダ引き継ぎ」を参照してください。

Cookie情報の引き継ぎの流れを次の図に示します。

図2‒15 SAP ERP 6.0のサービス呼び出しでのCookie情報の引き継ぎ

[図データ]

Cookie情報としてサービス部品が発行するSet-Cookieヘッダの情報が引き継がれます。

次に示すCookie情報の引き継ぎ条件をすべて満たす場合は,Set-Cookieヘッダの属性がCookieヘッダに設定されます。

条件を満たさない場合は,Cookieヘッダに何も設定されません。

Cookie情報の引き継ぎ範囲,引き継ぎ条件,およびログ出力について説明します。また,Cookie情報の引き継ぎに関する注意事項を示します。

〈この項の構成〉

(1) Cookie情報の引き継ぎ範囲

Cookie情報を引き継ぐビジネスプロセスの範囲を次に示します。

  1. 初回のサービス呼び出しから,受付アクティビティおよび応答アクティビティを実行するまで

  2. 初回のサービス呼び出しから,ビジネスプロセスインスタンスが終了するまで

1.の範囲では,次に示す場合でもCookie情報が引き継がれます。

ただし,次の場合は引き継ぎ範囲に関係なく,Cookie情報は引き継がれません。

(2) Cookie情報の引き継ぎ条件

サービス部品を呼び出すときの情報と呼び出し先の情報に関して,次に示す条件をすべて満たす場合にCookie情報が引き継がれます。

注意事項
  • Cookie情報の引き継ぎは,SAP ERP 6.0のSet-Cookieヘッダ仕様の「path属性」によって判断されます。ただし,SOAP通信基盤(SOAP1.1モード)を使用する場合は,「path属性」は考慮されないで,「ホスト名:ポート番号」だけが考慮されます。ポート番号が指定されていない場合はホスト名が考慮されます。

  • Set-Cookieヘッダにpath属性が含まれていない場合は,デフォルト値として「path=/」が設定されます。

  • 次の例のように,Set-Cookieヘッダに属性名が「path」の属性が複数設定されている場合は,path属性に「path=/」が設定されたものとして動作します。

    (例)

     Set-Cookie: NAME=value; path=/sap/aaa; path=/sap/bbb

  • 複数の異なるpath属性値を持つCookie情報をHTTPヘッダに設定する場合,Set-Cookieの読み込み順序に依存しないで,path属性値が詳細な順にHTTPヘッダに設定されます。

    例えば,次のSet-Cookieヘッダを受け取った場合,HTTPヘッダには「cookie:NAME3=value3; NAME2=value2; NAME1=value1」が設定されます。

    (例)

     Set-Cookie: NAME1=value1; path=/

     Set-Cookie: NAME2=value2; path=/sap

     Set-Cookie: NAME3=value3; path=/sap/aaa

(3) ログ出力

HCSCサーバランタイム定義ファイルのmethodtrace-levelプロパティに「2」以上の値を設定した場合に,メソッドトレースにログが出力されます。

(4) 注意事項

(a) サポートしていない仕様および属性について

  • Netscape Communications社のSet-Cookieヘッダの仕様である「domain属性」,「expires属性」,および「secure属性」は,サポートしていません。

  • RFC2109のSet-Cookieヘッダの仕様である「Comment属性」,「Domain属性」,「Max-Age属性」,および「Secure属性」は,サポートしていません。

  • RFC2965でサポートされているSet-Cookie2の仕様は,サポートしていません。

  • 「JSESSIONID」は,サポートしていません。SAP ERP 6.0では,「sap-contextid属性」でセッション管理をしています。

(b) バージョン属性について

  • Cookieバージョンは,「0」(Netscape Communication社のSet-Cookie仕様)または「1」(RFC2109のSet-Cookie仕様)だけを設定できます。なお,バージョンは次に示す順序で決定されます。

    1. Set-Cookieヘッダに「expires属性」が定義されている場合,バージョンは0になります。

    2. Set-Cookieヘッダに「Version属性」が定義されている場合,バージョンは1になります。

    3. Set-Cookieヘッダに「Max-Age属性」が定義されている場合,バージョンは1になります。

    4. 1〜3のどれにも当てはまらない場合,バージョンは0になります。

  • SAP ERP 6.0が発行するSet-Cookieヘッダには「Version属性」は含まれません。

  • 「Version属性」が複数のCookie情報で異なる場合は,最初に読み込んだCookie情報が持つ「Version属性」の値が採用されます。

  • RFC2109でサポートしているCookie仕様で動作を行う場合,「Version属性」の設定値をCookieヘッダの「cookie-version属性」に設定する必要があります。