図13‑1に、Oracle Coherenceに基づいてTDCを使用するためのOracle Tuxedo MPドメインでの一般的なデプロイメントを示します。
java -server -showversion $JAVA_OPTS -Dtangosol.coherence.mode=prod -cp $APPDIR/config: ${COHERENCE_HOME}/lib/coherence.jar com.tangosol.net.DefaultCacheServer
リスト13‑2は例です。太字のプロパティに注意してください。この例で、
coherence_tuxは、マルチキャスト・ポート番号が
51697でユニキャスト・ポート番号が
51687であるOracle Coherenceクラスタの名前です。
リスト13‑3は例です。太字のプロパティに注意してください。この例では、
tux_distributedという名前のOracle Coherenceキャッシュを作成します。
リスト13‑4は、TDCが有効化されたOracle Tuxedo Javaサーバーの構成ファイルの例です。詳細は、
バージョン2.0のJavaサーバー構成スキーマ・ファイルを参照してください。
•
|
一般的に、太字のコード行は変更しないでください。クラスcom.oracle.tuxedo.tdc.TCache4CoherenceはTDCによって使用されるメイン・クラスで、これは ${TUXDIR}/udataobj/tuxj/tdc/com.oracle.tuxedo.tdcj.jarにあります。
|
<jvm-options>-XX:MaxPermSize=192m</jvm-options>
<classpath>${TUXDIR}/udataobj/tuxj/tdc/com.oracle.tuxedo.tdcj.jar</classpath>
リスト13‑5に、プロパティ・ファイルのテンプレートを示します。このテンプレートは、
$TUXDIR/udataobj/tuxj/tdc/tdcsvr_coh.conf.templateにあります。このテンプレートでは、
tc1と
tc2という2つのOracle Tuxedoキャッシュ名が構成されています。
tc1ではOracle Coherenceキャッシュ
tux_distributedが使用され、
tc2ではOracle Coherenceキャッシュ
tux2_distributedが使用されています。
TMJAVASVRを
UBBCONFIGに構成します。
TMJAVASVRでは、パフォーマンス向上のためにマルチスレッド構成を使用します。可用性を高めるために、複数インスタンス構成も使用されます。
${APPDIR}は
/home/scott/tuxedo/dom1であると仮定します。
•
|
tangosol-coherence-override.xmlを ${APPDIR}/configに準備します。 リスト13‑9を参照してください。
|
•
|
coherence-cache-config.xmlを ${APPDIR}/configに準備します。 リスト13‑10を参照してください。
|
java -server -showversion $JAVA_OPTS -Dtangosol.coherence.mode=prod -cp ${APPDIR}/config: ${COHERENCE_HOME}/lib/coherence.jar com.tangosol.net.DefaultCacheServer
リスト13‑11を参照してください。ここでは、
<server-clopt>-f /home/scott/tuxedo/dom1/config/tdcsvr_coh.conf</server-clopt>プロパティによってTDCプロパティ・ファイルが指定されています。
<jvm-options>-XX:MaxPermSize=192m</jvm-options>
<classpath>${TUXDIR}/udataobj/tuxj/tdc/com.oracle.tuxedo.tdcj.jar</classpath>
<classpath>${COHERENCE_HOME}/lib/coherence.jar</classpath>
<classpath>${APPDIR}/config</classpath>
<server-class name="com.oracle.tuxedo.tdc.TCache4Coherence">
リスト13‑12を参照してください。ここでは、実際にOracle Coherenceキャッシュ
tux_distributedを使用するOracle Tuxedoキャッシュ
tcが構成されています。
TMJAVASVRを
UBBCONFIGに構成します。
リスト13‑13を参照してください。ここでは、マルチスレッド構成が有効化され、
TMJAVASVR構成ファイル
tdcsvr_coh.xmlが設定されています。
databuf = tpalloc("STRING", NULL, 256);
mycache = tpgetcache("tc");
strcpy(databuf, "scott");
tpcacheput(mycache, mykey, databuf, 0, 0L);
databuf = tpalloc("STRING", NULL, 256);
mycache = tpgetcache("tc");
tpcacheget(mycache, mykey, &databuf, NULL, 0L);
•
|
Svccache1ではOracle Tuxedoキャッシュ tc1を使用します。その他の構成はデフォルトです。(つまり、 KEY=$service+$requestおよび KEY_BUFTYPE=STRING)。
|
•
|
Svccache2ではOracle Tuxedoキャッシュ tc1を使用します。レスポンス・データをキャッシュするとき、リクエストを使用してキーを見つけます。その他の構成はデフォルトです。(つまり、 KEY_BUFTYPE=STRING)。
|
•
|
Svccache3ではOracle Tuxedoキャッシュ tc1を使用します。固定文字列 key1がキーとして使用されます。その他の構成はデフォルトです。
|
•
|
Svccache4ではOracle Tuxedoキャッシュ tc1を使用します。サービスへのリクエスト・メッセージのバッファタイプは VIEW32であり、そのサブタイプは mystruct1です。サブタイプ mystruct1内のフィールド nameの値が、キーとして使用されます。
|
•
|
Svccache5ではOracle Tuxedoキャッシュ tc1を使用します。 FML32および VIEW32: mystruct1のバッファ・タイプには、同じ field1と field2が含まれ(名前とデータ型は同じである必要がありますが、異なる値を使用できます)、リクエスト・メッセージでは、 field1と field2の値をキーとして使用します。
|
VIEWTABLEを構成します。
リスト13‑17を参照してください。ここで、バッファ・タイプは
VIEWであり、サブタイプは
mystruct1です。
UBBCONFIGを構成します。
リスト13‑18を参照してください。次のような内容になります
Oracle Tuxedoサービスmysvc1では、パフォーマンスを高めるためにキャッシュ・エントリ
svccache1を使用します。
svccache1では、Oracle Tuxedoキャッシュ
tc1使用して、サービス結果をキャッシュします。レスポンスの対応するキーは、リクエスト・データの値です。
初めてScottがリクエストとして処理されたときに、
mysvc1が呼び出され、レスポンスが返送されて、返送されたレスポンスがOracle Tuxedoキャッシュ
tc1にキー
Scottとともにキャッシュされます。キャッシュ
tc1内のデータが期限切れにならないかぎり、サービス
mysvc1への
Scottに対するこれ以降のすべてのリクエストでは、サービス自体を呼び出すのではなく、キャッシュ
tc1からレスポンスを取得します。
識別子ECID_USERLOGが設定され、ECIDがNULL文字列でない場合、ECIDはユーザー・ログに追加されます。
tangosol-coherence-override.xmlを
${APPDIR}/configに準備します。詳細は次のとおりです。
•
|
<destination>要素を使用して、ログ・メッセージをファイルに出力する場合のパスおよびファイル名を構成します。指定されたパスは、存在している必要があります。
|
•
|
ecidを < message-format >要素に追加して、ECIDを有効にします。
|
tpgetcache - 構成に応じてOracle Tuxedoキャッシュ・ハンドルを取得します
tpgetcache(3c)により、取得するOracle Tuxedoキャッシュの名前を示すOracle Tuxedoキャッシュ名に基づいて、Oracle Tuxedoキャッシュ・ハンドルが取得されます。この名前の長さは、78文字以下にする必要があります。
tpgetcache(3c)はスレッドレベルのAPIです。戻りハンドル
TCACHEは、同じスレッド内でのみ使用できます。
正常に終了すると、tpgetcache(3c)は内部構造体であるハンドル型
TCACHEを返します。
異常終了すると、tpgetcache(3c)は
NULLを返し、
tperrnoを設定してエラーの状況を示します。呼出しが異常終了して
tperrnoに特定の値が設定されたときは、中間のATMI呼出しを省略して引き続き
tperrordetail(3c)を呼び出すと、エラーに関する詳細な情報が提供されます。詳細は、
「tperrordetail(3c)」リファレンス・ページを参照してください。
tpcacheput - Oracle Tuxedo型付きバッファをキャッシュに配置し、このバッファをキーに関連付けます
tpcacheput(3c)により、Oracle Tuxedo型付きバッファがキャッシュに配置され、キーに関連付けられます。
tcが
tpgetcache(3c)によって返されます。
dataは、
tpalloc(3c)によって割り当てられたTuxedo型付きバッファを指します。
lenはデータの長さです。データの型に長さを指定する必要がない場合(FMLフィールド化バッファなど)、
lenは無視されます(0でもかまいません)。
flagsは予約されており、
0Lである必要があります。
異常終了すると、tpcacheput(3c)は-1を返し、
tperrnoを設定してエラーの状況を示します。呼出しが異常終了して
tperrnoに特定の値が設定されたときは、中間のATMI呼出しを省略して引き続き
tperrordetail(3c)を呼び出すと、エラーに関する詳細な情報が提供されます。詳細は、
「tperrordetail(3c)」リファレンス・ページを参照してください。
tpcacheget - キーに関連付けられているOracle Tuxedo型付きバッファをキャッシュから取得します
tpcacheget(3c)により、キーに関連付けられているOracle Tuxedo型付きバッファがキャッシュから取得されます。
tcが
tpgetcache(3c)によって返されます。
odataは、キーのデータが読み込まれたバッファへのポインタのアドレスです。これは、
tpalloc(3c)によって最初に割り当てられたバッファを指す必要があります。
olenはデータの長さを指します。
flagsは予約されており、
0Lである必要があります。
異常終了すると、tpcacheget(3c)は-1を返し、
tperrnoを設定してエラーの状況を示します。呼出しが異常終了して
tperrnoに特定の値が設定されたときは、中間のATMI呼出しを省略して引き続き
tperrordetail(3c)を呼び出すと、エラーに関する詳細な情報が提供されます。詳細は、
「tperrordetail(3c)」リファレンス・ページを参照してください。
tpcacheremove - パラメータ・キーに関連付けられたキャッシュ・エントリをキャッシュから削除します
tpcacheremove(3c)により、パラメータ・キーに関連付けられているキャッシュ・エントリがキャッシュから削除されます。
tcが
tpgetcache(3c)によって返されます。
flagsは予約されており、
0Lである必要があります。
異常終了すると、tpcacheremove(3c)は-1を返し、
tperrnoを設定してエラーの状況を示します。呼出しが異常終了して
tperrnoに特定の値が設定されたときは、中間のATMI呼出しを省略して引き続き
tperrordetail(3c)を呼び出すと、エラーに関する詳細な情報が提供されます。詳細は、
「tperrordetail(3c)」リファレンス・ページを参照してください。
tpcachemremove - パラメータkeyarrayに関連付けられたキャッシュ・エントリをキャッシュから削除します
tpcachemremove(3c)により、パラメータkeyarrayに関連付けられているキャッシュ・エントリがキャッシュから削除されます。
tcが
tpgetcache(3c)によって返されます。
keyarrayは削除されるキーの配列です。
sizeはkeyarrayのサイズです。
flagsは予約されており、
0Lである必要があります。
異常終了すると、tpcachemremove(3c)は-1を返し、
tperrnoを設定してエラーの状況を示します。呼出しが異常終了して
tperrnoに特定の値が設定されたときは、中間のATMI呼出しを省略して引き続き
tperrordetail(3c)を呼び出すと、エラーに関する詳細な情報が提供されます。詳細は、
「tperrordetail(3c)」リファレンス・ページを参照してください。
tpcacheremoveall - すべてのキャッシュ・エントリをキャッシュから削除します
tpcacheremoveall(3c)により、すべてのエントリがキャッシュから削除されます。
tcが
tpgetcache(3c)によって返されます。
flagsは予約されており、
0Lである必要があります。
異常終了すると、tpcacheremoveall(3c)は-1を返し、
tperrnoを設定してエラーの状況を示します。呼出しが異常終了して
tperrnoに特定の値が設定されたときは、中間のATMI呼出しを省略して引き続き
tperrordetail(3c)を呼び出すと、エラーに関する詳細な情報が提供されます。詳細は、
「tperrordetail(3c)」リファレンス・ページを参照してください。
自然行は、行末記号(\\n、
\\rまたは
\\r\\n)のセットまたはストリームの末尾で区切られた1行の文字列として定義されます。自然行は、空白の行やコメント行であるか、キーと要素のペアの全部または一部を保持する場合があります。
空白文字のみが含まれた自然行は、空白とみなされて無視されます。コメント行には、ASCII '#'または
'!'がその最初の非空白文字として含まれ、キーには、最初の非空白文字から最初のエスケープされていない
'=', ':'の手前までの行内のすべての文字が含まれます。キーのあとの空白はすべてスキップされます。キーに続く最初の非空白文字が
'='または
':'である場合、これは無視され、その後の空白文字もすべてスキップされます。行上の残りのすべての文字は、関連付けられた要素文字列の一部になります。残りの文字がない場合、その要素は空の文字列
""です。
表13‑2に、サポートされているTDCプロパティ・ファイルのプロパティを示します。
|
|
|
•
|
yes (すべてのキャッシュ・データをエンコードする必要があります)
|
この値は、cache.options.encode.[cachename]によってオーバーライドできます。
|
|
yesは、Oracle Tuxedoキャッシュ [cachename]内のすべてのキャッシュ・データをエンコードする必要があることを示します。データ表現の異なるマシンにキャッシュ・ユーザーが置かれる場合は、有効にする必要があります。
このプロパティが設定されていない場合、options.encodingの値が使用されます。
|
|
Oracle Tuxedoキャッシュ[cachename]のためにCoherenceクラスタで使用されているキャッシュ名を示します。
|
|
|
|
string_valueは、 CACHINGセクションで定義されている CACHING_CRITERIA_NAMEである必要があります。このパラメータの指定は必須であり、指定しない場合、サービス・キャッシュは有効になりません。 string_valueの長さは、127文字以下にする必要があります。
|
|
|
|
CACHING_CRITERIA_NAME ( string_value)は、 SERVICESセクション内の特定のサービス・エントリについて CACHINGパラメータに割り当てられている名前です。 CACHING_CRITERIA_NAMEの長さは、127文字以下にする必要があります。
|
|
使用するOracle Tuxedoキャッシュの名前を指定します。string_valueの長さは、78文字以下にする必要があります。
|
|
キャッシュ・データを関連付けるキーの構成方法を指定します。string_valueの長さは、127文字以下にする必要があります。
このパラメータは省略可能です。指定しない場合、キーはサービス名およびリクエスト内のシリアライズされたユーザー・データの組合せとして生成されます。string_valueは組込み変数をインポートして $でキーを構成できます。変数 requestは、リクエスト内のユーザー・データの一部またはすべてを使用することを示します。
たとえば、mykey_$requestは、キーの形式が mykey_servicename_[user data in request]であることを示します。
KEY_BUFTYPEおよび KEY_FIELDパラメータは、ユーザー・データのどの部分を使用するかを指定する場合に役立ちます。
|
|
タイプは、STRING、 CARRAY、 FML、 FML32、 XML、 VIEW、 VIEW32、 RECORD、 MBSTRING、 X_C_TYPEまたは X_COMMONのいずれかにする必要があります。タイプが STRING、 CARRAY、 FML、 FML32、 MBSTRINGまたは XMLの場合、サブタイプは指定できません。タイプが VIEW、 VIEW32、 RECORD、 X_C_TYPEおよび X_COMMON ( *は許可されません)の場合は、サブタイプが必要です。サブタイプ名には、セミコロン、コロン、カンマまたはアスタリスク文字を使用できません。タイプとサブタイプのペアのうち、重複するものは同じキャッシュ基準名として指定できません。タイプとサブタイプのペアが一意である場合、複数のキャッシュ・エントリは同じ基準名を持つことができます。単一キャッシュ・エントリに複数のバッファ・タイプが指定されている場合は、各バッファ・タイプのキャッシュ・フィールドのデータ型は同じである必要があります。
このパラメータが指定されていない場合は、 STRINGが使用されます。
このパラメータは、KEYが requestに設定されていない場合には無視されます。
|
|
各フィールドはFMLフィールド表(FLDTBLDIRおよび FIELDTBLS環境変数を使用するか、 FLDTBLDIR32および FIELDTBLS32環境変数を使用)またはFMLのVIEW表( VIEWDIRおよび VIEWFILES環境変数を使用するか、 VIEWDIR32および VIEWFILES32環境変数を使用)内のXML要素、要素属性またはフィールド名にすることができます。この情報は、メッセージの送信時に、サービス・キャッシュに関連するフィールド値を取得するために使用されます。
KEY_BUFTYPEが STRINGまたは CARRAYに設定されている場合は、次の構文を使用してフィールドを定義します。
Index1はバッファ内のフィールドの開始インデックスを示し、 index2はフィールドの終了インデックスを示します。このバラメータが定義されていない場合は、バッファ全体がキーと見なされます。インデックスは1から設定する必要があります。
このパラメータは、KEYBUFTYPEが設定されていないか、または KEYが requestに設定されていない場合には無視されます。
|
このT_SERVICEオブジェクトは、キャッシュ基準名を示します。この属性に対するあらゆる更新は、関連するすべての
T_SVCGRPオブジェクトに反映されます。
このT_CACHINGクラスは、アプリケーションに対するキャッシュ指定の構成属性を表します。これらの属性値によって、アプリケーションのキャッシュ基準(バッファ・タイプ、フィールド名、キャッシュ定義など)を識別して特徴付けます。
•
|
(*) GET/SETキー。 SET操作には1つまたは複数のキーが必要です
|
•
|
u (一意性)が指定されている権限は、 TA_CACHING_NAMEと TA_CACHING_KEY_BUFTYPEの組合せが一意である必要があることを意味します。
|
キーの生成に使用する、バッファ内のフィールドの名前を指定します。これは255文字以下にする必要があり、最大8個のフィールドを指定できます。
各フィールドはFMLフィールド表(FLDTBLDIRおよび
FIELDTBLS環境変数を使用するか、
FLDTBLDIR32および
FIELDTBLS32環境変数を使用)またはFMLのVIEW表(
VIEWDIRおよび
VIEWFILES環境変数を使用するか、
VIEWDIR32および
VIEWFILES32環境変数を使用)内のXML要素、要素属性またはフィールド名にすることができます。この情報は、メッセージを送信するときに、サービス・キャッシュに関連するフィールド値を取得するために使用されます。
XMLバッファ内のXML要素の内容または要素属性については、次の構文を使用してフィールドの名前を定義します。
root_element[/child_element][/child_element][/. . .][/@attribute_name]
要素名と属性名を結合して35文字まで指定できます。Oracle Tuxedoでは、サービス・キャッシュでXMLバッファを処理する際に、指定された要素タイプの最初のオカレンスのみを認識します。XMLは、属性名に使用できる文字セットを厳密に定義しています。属性名は、単一の文字、アンダースコア、またはコロンを含む文字列で、その後に1つ以上の名前文字が続きます。要素名と属性名はいずれも、大文字/小文字が区別されます。詳細は、XMLのドキュメントを参照してください。
KEY_BUFTYPEが
STRINGまたは
CARRAYに設定されている場合は、次の構文を使用してフィールドを定義します。
[index1, index2]
Index1はバッファ内のフィールドの開始インデックスを示し、
index2はフィールドの終了インデックスを示します。このバラメータが定義されていない場合は、バッファ全体がキーと見なされます。インデックスは1から設定する必要があります。
GET操作は、選択した
T_CACHINGオブジェクトの構成情報を取得します。以下に示す状態は、
GETリクエストに応えて返される
TA_STATEの意味を示します。これら以外の状態は返されません。
VALid:
T_CACHINGオブジェクトが定義されています。これがこのクラスの唯一の有効な状態です。
SET操作は、選択した
T_CACHINGオブジェクトの構成情報を更新します。以下に示す状態は、
SETリクエストで設定される
TA_STATEの意味を示します。これ以外の状態を設定することはできません。
NEW: アプリケーションに対する
T_CACHINGオブジェクトを作成します。状態の変更は
INValid状態でのみ可能です。正常に終了すると、オブジェクトの状態は
VALidになります。
INValid: アプリケーションの
T_CACHINGオブジェクトを削除します。状態の変更は、
VALid状態でのみ可能です。正常に終了すると、オブジェクトの状態は
INValidになります。