16 Oracle Healthcareコマンド行ツール

この章では、データのパージ、データのインポートおよびエクスポート、バッチ操作、エンドポイントの更新および削除など多数のタスクに使用できるOracle Healthcareコマンドライン・ツールについて説明します。

この章のトピックは、次のとおりです:

16.1 コマンドライン・ツール実行の前提条件

コマンドライン・ツールを使用する前に特定の作業を実行する必要があります。

  1. ORACLE_HOMEANT_HOMEおよびJAVA_HOMEの各環境変数を設定します。

    ORACLE_HOMEは、Oracle Fusion Middlewareインストール・ディレクトリのOracle SOA Suiteインストールに設定されます。たとえば、デフォルト・シェルがCSHの場合、次のようになります。

    setenv ORACLE_HOME <Oracle SOA install directory>
    setenv ANT_HOME $ORACLE_HOME/../modules/org.apache.ant_1.7.1 
    set JAVA_HOME $ORACLE_HOME/<jdk install directory> 
    
  2. jndi.propertiesを作成します。
    cd $ORACLE_HOME/bin
    ant -f ant-hcfp-util.xml hcfpcreate-prop
    
  3. jndi.propertiesファイルを編集して、weblogicパスワードを組み込みます。

ノート:

1. コマンド行ツールは管理者専用です。ログイン・ユーザーによるデータのパージ、インポートまたはエクスポートを防止するためのセキュリティ・チェックまたは権限チェックは実行されません。

2. コマンドライン・ツールを実行した後、Oracle Healthcareコンソールへのログオンを取得する必要があります。Oracle Healthcareコンソールでは一部のメタデータがキャッシュに入れられ、コマンド行アクションによってメタデータが更新されると、キャッシュ内のデータが無効になる場合があります。したがって、コマンドライン操作を使用した後は必ずOracle Healthcareコンソールに再ログインすることをお薦めします。

3. JNDI資格証明がなくても、すべてのコマンドライン・ツールを実行できます。匿名ユーザーによるコマンド行ツールの使用を制限するには、jndi.propertiesファイルに次の情報を指定します。

java.naming.security.principal=weblogic
java.naming.security.credentials=weblogic_password

ノート:

Oracle Healthcareコマンドライン・ユーティリティではデフォルトで、クライアント側またはサーバー側エラーの場合でも、ANTの実行でBUILD SUCCESSFULが示され、システム・コード0 (ゼロ)が戻されます。ANTを実行した結果、クライアント側またはサーバー側でエラーが発生した場合はFAILが表示されるようにするには、exitonerrorパラメータをtrueに設定する必要があります。

これは、次の2つのうちいずれかの方法で行うことができます。

  • ANTコマンド行で-Dexitonerror=trueを指定

    ant -f ant-hcfp-util.xml b2bpurge -Dagreement=<AGR_NAME> -Dmode=DT -Dexitonerror=true
  • exitonerrorパラメータをグローバル設定として設定

    ant_general.propertiesというプロパティ・ファイルを値exitonerror=trueでant-hcfp-util.xmlが存在するディレクトリ($ORACLE_HOME/bin)に作成します。

この構成により、クライアント側またはサーバー側でエラーが発生した場合は常に、ANTコマンドはメッセージBUILD FAILEDを出力して失敗し、システム終了コードは -1に設定されます。

16.2 データのパージ

このユーティリティを使用して、Oracle Healthcareリポジトリから設計および実行時データをパージします。このユーティリティでは、デフォルトでアーカイブ機能も用意されています。アーカイブがYESに設定されている場合、次のように初期設定が必要です。

初期設定を行うには:

  1. データベースが稼働するマシン上で、アーカイブ・ファイルをダンプするディレクトリを作成します。これは永続ディレクトリではありません。アーカイブ手順が完了したら、アーカイブされたファイルを別の場所に移動できます。このディレクトリは、セキュリティ目的で必要に応じて削除できます。たとえば:

    mkdir /archive
  2. この操作のためにデータベース・プロセスでデータを書き込めるように、chmodコマンドを使用してこのディレクトリへの権限を付与します。

  3. sysdbaでデータベースにログインします。

    sqlplus / as sysdba
  4. HCFP_EXPORT_DIRを設定します。

    SQL> create or replace DIRECTORY HCFP_EXPORT_DIR as '/archive'
    
  5. SOAスキーマ・ユーザーがhcfp_soainfraの場合は、そのユーザーにエクスポート権限を付与する必要があります。

    SQL> grant read, write on directory HCFP_EXPORT_DIR to hcfp_soainfra;
    SQL> grant exp_full_database  to hcfp_soainfra;
    

次のユーティリティでは、設計時データとランタイム・データの両方をパージし、環境をインストール時の状態にリセットします。

ant -f ant-hcfp-util.xml hcfppurge

表16-1に、このユーティリティのオプションを示します。

表16-1 hcfppurgeユーティリティのオプション

オプション 説明 ドメイン 必須
mode

設計時データのパージまたはランタイム・データのパージを指定します(下のノートを参照)。

実行時オプション: msgstate/start/end/purgecontrolnumber

設計時のオプション: host

DT

RT

はい

msgState

指定したメッセージの状態のメッセージを削除します。ランタイム・データに使用されます。

MSG_COMPLETE

MSG_ERROR

MSG_WAIT_TRANSMIT

MSG_WAIT_FA

MSG_WAIT_BATCH

いいえ。msgstateが存在する場合は、startおよびendを使用する必要があります。

purgecontrolnumber

管理番号を削除します。ランタイム・データに使用されます。

true

false (デフォルト)

いいえ

fromdate

この日付以降に作成されたすべてのメッセージを削除します。

日付書式

dd/mm/yyyy hh:mm AM/PM

いいえ

todate

この日付以前に作成されたすべてのメッセージを削除します。

日付書式

dd/mm/yyyy hh:mm AM/PM

いいえ

direction

メッセージの方向

いいえ

msgtype

メッセージのタイプ

いいえ

archive

要アーカイブ

デフォルト値はtrue

archivename

アーカイブ・ファイルのファイル名

いいえ

ノート:

-Dmode=RT -Dtp=endpoint_nameオプションのみを使用すると、エンドポイント名が送信者名または受信者名と一致するすべてのレコードが削除されます。

例 - 設計時データの削除

ant -f ant-hcfp-util.xml hcfppurge -Dmode=DT

例 - ランタイム・データのパージ

ant -f ant-hcfp-util.xml hcfppurge -Dmode=RT -Darchive=false

例 - 管理番号を含むランタイム・データのパージ

ant -f ant-hcfp-util.xml hcfppurge -Dmode=RT -Dpurgecontrolnumber=true

例 - 指定した日付範囲内の指定した状態のメッセージのパージ

ant -f ant-hcfp-util.xml hcfppurge -Dmode=RT -Dfromdate="01/02/2009 12:00 AM" -Dtodate="10/02/2009 12:00 AM" -Dmsgstate=MSG_COMPLETE -Darchive-false

ノート:

archivenameを使用する場合、値は一意のファイル名である必要があります。archivenameに既存のファイル名を使用すると、例外がスローされます。

16.3 データのインポート

hcfpimportユーティリティでは、Oracle HealthcareメタデータZIPファイルをリポジトリにインポートします。基本的な検証は実行されますが、デプロイメント検証のような完全な検証ではありません。overwriteオプションを使用しないかぎり、データは上書きされません。

ノート:

ログイン・ユーザーによるデータのインポートを防止するためのセキュリティ・チェックまたは権限チェックは実行されません。

次の使用例では、tmp/export.zipのデータが同じサーバー上の場所にインポートされ、上書きは行われません。

ant -f ant-hcfp-util.xml hcfpimport -Dlocalfile=true -Dexportfile="/tmp/export.zip"

表16-2に、このユーティリティのオプションを示します。

表16-2 hcfpimportユーティリティのオプション

オプション 説明 ドメイン 必須
exportfile

エクスポート(ZIP)ファイルの場所

[-]

はい

overwrite

既存のビジネス要素を上書きします。たとえば、インポート・ファイルのエンドポイントと同じエンドポイント名を持つ既存のエンドポイントは、このオプションがtrueに設定されている場合、置換されます。

true

false (デフォルト)

いいえ

localfile

エクスポート・ファイルの場所がサーバー上である場合は、このオプションをtrueに設定すると、パフォーマンスが向上します。エクスポート・ファイルは、Oracle Healthcareが稼働しているサーバーに存在する必要があります。

true

false (デフォルト)

いいえ

active

インポート後にすべてのエンドポイントを有効にします

true

false (デフォルト)

いいえ

16.4 データのエクスポート

hcfpexportユーティリティでは、メタデータをOracle Healthcareリポジトリからエクスポートします。オプションを指定しないと、リポジトリ全体がエクスポートされます。

ノート:

ログイン・ユーザーによるデータのエクスポートを防止するためのセキュリティ・チェックまたは権限チェックは実行されません。

次の使用例では、他のオプションを指定しない場合、リポジトリ全体(ポリシー詳細を除く)が/tmp/export.zipにエクスポートされます。

ant -f ant-hcfp-util.xml hcfpexport

表16-3に、このユーティリティのオプションを示します。

表16-3 hcfpexportユーティリティのオプション

オプション 説明 ドメイン 必須
exportfile

エクスポートしたデータを格納するZIPファイルの場所

/tmp/export.zip (デフォルト)

いいえ

endpoint

エンドポイントの名前

いいえ

policies

trueに設定すると、ユーザーとロールの詳細(ポリシー・ストアに必要)を含むリポジトリ全体がエクスポートされます。ポリシー・ストアもエクスポートするように警告が表示されます。

true

false (デフォルト)

いいえ

localfile

エクスポート・ファイルがOracle Healthcareと同じコンピュータ上にある場合は、trueに設定するとパフォーマンスが向上します。

true

false (デフォルト)

いいえ

例 - ポリシーの詳細を含むリポジトリ全体を/tmp/export.zipにエクスポートする場合

ant -f ant-hcfp-util.xml hcfpexport -Dexportfile="/tmp/export.zip" -Dpolicies=true

例 - 詳細を含まないリポジトリ全体を同じサーバー上の/tmp/exportinserver.zipにエクスポートする場合

ant -f ant-hcfp-util.xml hcfpexport -Dexportfile="/tmp/exportinserver.zip" -Dlocalfile=true

例 - /tmp/export.zipへのエンドポイント許可のエクスポート

ant -f ant-hcfp-util.xml hcfpexport -Dexportfile="/tmp/export.zip" -Dendpoint=Admission

例 - /tmp/export.zipへの、エンドポイント許可と内部配信チャネルGeneric1およびGeneric2のエクスポート

ant -f ant-hcfp-util.xml hcfpexport -Dexportfile="/tmp/export.zip" -Dendpoint=Admission -DinternalChannel=GENERIC1,GENERIC2

16.5 バッチ処理操作

コマンド行のhcfpbatchユーティリティを使用すると、様々な条件に基づいてバッチを作成および削除できます。これはANTベースのコマンドであり、バッチを作成する条件を選択できる柔軟性をもたらします。

使用方法を次に示します。

ant -f ant-hcfp-util.xml hcfpbatch -Dendpoint=<EndpointName> -Dbatchtime=<batchTriggerTime> -Dbatchname=<batchName> -Ddocument=<documentProtocolName> -Ddocrevision=<docRevision> -Ddoctype=<docType> -Disrepetitive=<true|false>

表16-4に、このユーティリティのオプションを示します。

表16-4 hcfpbatchユーティリティのオプション

オプション 説明 ドメイン 必須

endpoint

エンドポイント名。

エンドポイント名を指定します。

はい脚注1

batchname

バッチ名。

バッチの名前を指定します。

はい

batchtime

バッチのトリガー時刻。

トリガー時刻には、cron文字列または dd/MM/yyyy HH:mm AM/PM形式の日付を使用できます。

はい

document

ドキュメント・プロトコル名。

値: EDI_EDIFACT、EDI_X12

はい

docrevision

ドキュメント・リビジョン。

[-]

はい

doctype

ドキュメント・タイプ。

[-]

はい

isrepetitive

cron文字列を使用してバッチを作成するときに、反復的なバッチ処理を有効にします。

値: trueまたはfalse

いいえ

mode

モード

バッチを削除するには、deletebatchに設定します。

いいえ

脚注1

バッチを作成するには、endpoint、batchtime、batchname、document、docrevision、doctypeの各オプションが必要です。バッチを削除するには、modeとbatchnameオプションのみが必要です。

ノート:

コマンド行操作のcronジョブは、次のcron構文に従って作成する必要があります。

例 - バッチ処理操作の作成

このコマンドでは、FileEndpointを使用してX12/4010/850ドキュメントに対するバッチ処理操作を作成します。このバッチ処理操作は、指定したcron文字列に対して反復モードで実行されます。

ant -f ant-hcfp-util.xml hcfpbatch -Dendpoint=FileEndpoint -Dbatchtime="0 4850 11 7 5 ? 2010" -Dbatchname=batch1234 -Ddocument=EDI_X12 -Ddocrevision=4010 -Ddoctype=850 -Disrepetitive=true

例 - 複数のドキュメント・タイプに対するバッチの作成

ant -f ant-hcfp-util.xml hcfpbatch -Dendpoint=FileEndpoint -Dbatchtime="0 58 11 7 5 ? 2010" -Dbatchname=batch1234 -Ddocument=EDI_X12 -Ddocrevision=4010 -Ddoctype=850,997
ant -f ant-hcfp-util.xml hcfpbatch -Dendpoint=FileEndpoint -Dbatchtime="07/05/2010 11:45 AM" -Dbatchname=batch1234 -Ddocument=X12 -Ddocrevision=4010 -Ddoctype=850,997

例 - バッチ処理操作の削除

ant -f ant-hcfp-util.xml hcfpbatch -Dmode=deletebatch -Dbatchname=batch1234 

例 - batchtimeオプションでの特殊文字の使用

batchtimeの値に*や#などの特殊文字が含まれる場合は、二重引用符を使用して文字をエスケープする必要があります。

ant -f ant-hcfp-util.xml hcfpbatch -Dendpoint=FileEndpoint -Dbatchtime='0 5,10,15,20,25,30,35,40,45,50,55,59 "*" "*" "*" ? 2010' -Dbatchname=batch1234 -Ddocument=EDI_X12 -Ddocrevision=4010 -Ddoctype="850,855" -Disrepetitive=true 

16.6 メッセージの再発行

このユーティリティでは、選択したビジネス・メッセージに対するアプリケーション・メッセージまたはワイヤ・メッセージを再発行します。

ant -f ant-hcfp-util.xml hcfpresubmit

ノート:

ペイロードの修正に対する再発行機能は、AppMessageのみのアウトバウンド・メッセージに対してのみ機能します。インバウンドの場合は無効です。

ant -f ant-hcfp-util.xml hcfpresubmit -Dmsgsource=APPMSG -Dmsgid=12345 -Dpayloadpath=/scratch/<username>/fmwhome/AS11gR1SOA/bin/3a4_req.xml

ノート:

ビジネス・メッセージが作成されていない場合、ワイヤ・メッセージのコマンドラインの再発行は動作しません。正しいコマンドはant -f ant-hcfp-util.xml hcfpresubmit -Dwiremsgid=<wire_message_id_1>,<wire_message_id_2>です。ワイヤ・メッセージIDのリストは、B2B_WIRE_MESSAGE表のID列の値です。

表16-5に、このユーティリティのオプションを示します。

表16-5 hcfpresubmitユーティリティのオプション

オプション 説明 ドメイン 必須
direction

メッセージの方向

INBOUND

OUTBOUND

いいえ

msgsource

メッセージ・ソース

APPMSG (デフォルト)

WIREMSG

はい

msgid

メッセージID

複数のメッセージIDをカンマで区切って指定可能

doctype

ドキュメント・タイプ

msgstate

メッセージの状態

fromdate

メッセージのsendTimestamp

二重引用符で囲んで指定する日付書式

dd-mm-yyyy hh:mm AM/PM 

ノート: 将来に日付にすることはできません。

todate

メッセージのsendTimestamp

二重引用符で囲んで指定する日付書式

dd-mm-yyyy hh:mm AM/PM 

ノート: todatefromdateより後にする必要があります。両方の日付を指定できます。

payloadpath

このオプションは、修正したファイル・パスを指定して、アウトバウンド・アプリケーション・メッセージを再発行する場合に適用可能です。

例 - メッセージIDが12345のアウトバウンド・メッセージの再発行

ant -f ant-hcfp-util.xml hcfpresubmit -Ddirection=OUTBOUND -Dmsgsource=APPMSG -Dmsgid=12345\

その他の例

ant -f ant-hcfp-util.xml hcfpresubmit -Dmsgsource=APPMSG -Ddoctype=850
ant -f ant-hcfp-util.xml hcfpresubmit -Dmsgsource=APPMSG -Dfromdate="29/11/2009 5:40 AM" -Dtodate="30/11/2009 7:39 AM"
ant -f ant-hcfp-util.xml hcfpresubmit -Dmsgsource=WIREMSG -Dmsgstate=MSG_ERROR

ant -f ant-hcfp-util.xml hcfpresubmit -Dmsgsource=APPMSG -Dfromdate="29/11/2009 5:40 AM" -Dtodate="30/11/2009 7:39 AM" -Ddirection=OUTBOUND
ant -f ant-hcfp-util.xml hcfpresubmit -Dmsgsource=APPMSG -Dfromdate="29/11/2009 5:40 AM" -Dtodate="30/11/2009 7:39 AM" -Ddirection=INBOUND
ant -f ant-hcfp-util.xml hcfpresubmit -Dmsgsource=APPMSG -Dmsgid=12345 -Dpayloadpath="/tmp/850.xml"

16.7 エンドポイントの停止時間のスケジューリング

様々なエンドポイント・パーティがそれぞれの理由で停止時間の計画を立て、その停止時間を取引相手のパートナに連絡しています。停止時間中、パーティがメッセージを送信しても宛先に到達しないことがあります。エンドポイントの停止時間をスケジューリングすると、メッセージは停止時間中に配信されないようになります。ただし、メッセージはOracle Healthcareによって、停止時間後にエンドポイント・パーティが起動したときにメッセージが配信されるように処理されます。

次のユーティリティでは、エンドポイントの停止時間をスケジュール設定します。

ant -f ant-hcfp-util.xml hcfpschedule

表16-6に、このユーティリティのオプションを示します。

表16-6 hcfpscheduleユーティリティのオプション

オプション 説明 ドメイン 必須

mode

スクリプトで停止時間がスケジュールされているか、されていないかを示します。

schedule(デフォルト)

unschedule

はい

schedulename

スケジュールを設定する停止時間の摘要名

[-]

はい

endpoint

エンドポイント名

[-]

はい

(unscheduleモードの場合以外)

fromdate

停止時間を開始する日時。

二重引用符で囲んで指定する日付書式

dd/mm/yyyy hh:mm AM/PM 

いいえ

todate

停止時間を終了する日時。

二重引用符で囲んで指定する日付書式

dd/mm/yyyy hh:mm AM/PM 

いいえ

extend

すでに作成されているスケジュールを延長します。

true

いいえ

次に、hcfpscheduleユーティリティを使用してエンドポイントの停止時間をスケジューリングする例を示します。コマンドを1行で入力する必要はありません。

例 - GlobalChipsの全チャネルのエンドポイント停止時間を"14/05/2010 00:14 AM"から"14/05/2010 00:17 AM"にスケジュールする

ant -f ant-hcfp-util.xml hcfpschedule
-Dendpoint="GlobalChips"
-Dfromdate="14/05/2010 00:14 AM"
-Dtodate="14/05/2010 00:17 AM"
-Dschedulename= "Maintenance"

例 - スケジュールが設定されているイベントのスケジュール解除

ant -f ant-hcfp-util.xml hcfpschedule
-Dmode=unschedule
-Dschedulename="Maintenance"

16.8 エンドポイントの更新

このユーティリティでは、エンドポイントをアクティブな状態から非アクティブな状態(またはその逆)に変更できます。

ant -f ant-hcfp-util.xml hcfpupdateendpoint

表16-7に、このユーティリティのオプションを示します。

表16-7 hcfpupdateendpointユーティリティのオプション

オプション 説明 ドメイン 必須
endpoint

エンドポイントの名前

はい

active

エンドポイントをアクティブにします

true

false

はい

例 - エンドポイントを非アクティブな状態からアクティブな状態に更新

ant -f ant-hcfp-util.xml hcfpupdateendpoint -Dendpoint=FileEndpoint -Dactive=true

16.9 エンドポイントの一時停止と再開

エンドポイントを一時停止するには、ANT ant-hcfp-util.xmlビルド・ファイルの下でhcfppauseendpointユーティリティを使用します。

表16-8に、このユーティリティのオプションを示します。

表16-8 hcfppauseendpointユーティリティのオプション

オプション 説明 ドメイン 必須
endpoint

エンドポイントの名前

はい

例 - エンドポイントの一時停止

ant -f ant-hcfp-util.xml hcfppauseendpoint -Dendpoint=FileEndpoint

エンドポイントを再開するには、ANT ant-hcfp-util.xmlビルド・ファイルの下でhcfpresumeendpointユーティリティを使用します。

表16-10に、このユーティリティのオプションを示します。

表16-9 hcfpresumeendpointユーティリティのオプション

オプション 説明 ドメイン 必須
endpoint

エンドポイントの名前

はい

例 - 一時停止したエンドポイントの再開

ant -f ant-hcfp-util.xml hcfpresumeendpoint -Dendpoint=FileEndpoint

16.10 エンドポイントの削除

このユーティリティでは、エンドポイントを削除します。

ant -f ant-hcfp-util.xml hcfpdeleteendpoint

表16-10 hcfpdeleteendpointユーティリティのオプション

オプション 説明 ドメイン 必須
endpoint

エンドポイントの名前

はい

非アクティブな状態からアクティブな状態のエンドポイントの削除

ant -f ant-hcfp-util.xml hcfpdeleteendpoint -Dendpoint=FileEndpoint

16.11 キーストアの更新

このユーティリティでは、キーストアの場所とパスワードを更新します。更新された場所とパスワードはOracle Healthcareコンソールで確認できます。

ant -f ant-hcfp-util.xml hcfpkeystoreupdate

表16-11 hcfpdeleteendpointユーティリティのオプション

オプション 説明 必須
keystorelocation

キーストアの場所

はい

keystorepassword

キーストアのパスワード

はい

例 - キーストアの場所とパスワードの更新

ant -f ant-hcfp-util.xml hcfpkeystoreupdate -Dkeystorelocation="/tmp/acme.jks" -Dkeystorepassword="welcome"

キーストアの詳細は、『Oracle B2Bの使用』キーストアの管理に関する項を参照してください。HealthcareではSSHIストライプを使用するため、URIは次のようになります。

kss://SSHI/Acme

Fusion Middlewareのセキュリティの一般的な情報については、『Oracle Platform Security Servicesによるアプリケーションの保護』を参照してください。