この付録では、Oracle Coherenceクラスタが含まれる仮想環境をデプロイし、仮想環境で静的IPアドレスを使用する場合のOracle Service Busの構成方法について説明します。
静的IPアドレスを使用する場合、クラスタのユニキャスト・アドレスに既知のアドレス(WKA)を構成する必要があります。また、サーバーの起動時に使用する引数にService BusのCoherenceオーバーライドが含まれていることを確認する必要があります。
WebLogic Admin Serverが実行中のコンピュータのルート・ディレクトリに次のディレクトリ構造を作成します。
/ovab
/scripts.d
/properties
/post-config.d
ルート・ディレクトリの下にディレクトリを作成する際に権限上の問題が発生する場合、ルート資格証明を持つユーザーとしてディレクトリを作成します。ディレクトリおよびそこに配置したファイルは、OVABイントロスペクションを実行するユーザーが読取り可能である必要があります。
プロパティ・ファイルは、Service BusのCoherenceオーバーライドを指定する2つのプロパティを定義します。
プロパティ・ファイルを作成するには:
手順1で作成した/ovab/scripts.d/propertiesディレクトリにosb.userpropsという名前のファイルを作成します。
WKAアドレスの実際のサーバーIPアドレスのカンマ区切りリストに置き換えて、ファイルに次のテキストを追加します。
coherence.wkaaddresses=Host1,Host2,Host3,Host4..,HostN coherence.wkaport=7890
| プロパティ | 説明 |
|---|---|
|
coherence.wkaaddresses |
Oracle Service BusクラスタのサーバーのIPアドレスのカンマ区切りリスト |
|
coherence.port |
7890 |
ファイルを保存して閉じます。
ずべてのユーザーが実行権限を持つようにファイルの権限を変更します。
これらのカスタム・プロパティは、アセンブリのすべてのアプライアンスのOVABデプロイ・プラン・エディタで使用できるようになります。これらのプロパティはService Busクラスタ・アプライアンス用に編集する必要があります。
bashシェルにはサンプル構成スクリプトが提供されています。
構成ファイルを作成するには:
手順1で作成した/ovab/scripts.d/post-config.dディレクトリにosb-postconfig.shという名前のファイルを作成します。
例C-1「サンプル構成ファイル」にテキストを追加します。
ファイルを保存して閉じます。
ずべてのユーザーが実行権限を持つようにファイルの権限を変更します。
例C-1 サンプル構成ファイル
#!/bin/bash
DEBUG_FILE=/tmp/osb-postconfig-$$.debug
/bin/rm -f $DEBUG_FILE
DEBUG=1
debug() {
if [ x$DEBUG=x1 ]; then
echo $1 >> $DEBUG_FILE
fi
}
CUSTOM_PROPS_DIR=$AB_CUSTOMPROPS_DIR
debug "CUSTOM_PROPS_DIR=$CUSTOM_PROPS_DIR"
OSB_PROPS_FILE=$CUSTOM_PROPS_DIR/osb.userprops
debug "OSB_PROPS_FILE=$OSB_PROPS_FILE"
OPWD=$PWD
cd $CUSTOM_PROPS_DIR/../..
CONTENT_RESDIR=$PWD
debug "CONTENT_RESDIR=$CONTENT_RESDIR"
if [ ! -f ./rehydrate.properties ]; then
debug "Rehydrate properties not found"
exit 1
fi
DOMROOT=$(grep WlsDomainRoot ./rehydrate.properties | sed 's/^.*=//')
if [ -z "$DOMROOT" ]; then
debug "Domain root cannot be identified"
exit 2
fi
OSB_DOMENV_FILE=$DOMROOT/bin/setOSBDomainEnv.sh
if [ ! -f $OSB_DOMENV_FILE ]; then
debug "OSB domain env file $OSB_DOMENV_FILE not found"
exit 3
fi
# Change to root
cd /
MYIP=$(/sbin/ip -f inet addr | awk '/eth0:/ { getline; sub(/\/..*$/,"",$2); print $2}')
if [ -z "$MYIP" ]; then
echo "VM IP address cannot be found for the eth0 interface"
exit 4
fi
MYHOST=$(hostname)
debug "MYIP = $MYIP"
START_ARGS=$(awk -v ip=$MYIP -v host=$MYHOST '
BEGIN {nhosts = 0 }
/coherence.wkaaddresses[ ]*=/ {
sub(/coherence.wkaaddresses[ ]*=/,"", $0)
n = split ($0, addr, /,/)
for (i = 1; i <= n && i < 10; ++i) {
a = addr[i] ""
gsub(/[ ]*/,"",a)
wka_arg = sprintf("%s -DOSB.coherence.wka%d=%s ", wka_arg, i, a )
}
nhosts=i - 1
host_arg = " -DOSB.coherence.localhost=" ip
}
/coherence.wkaport[ ]*=/ {
sub(/coherence.wkaport[ ]*=/,"", $0)
port = $0
for (i = 1; i <= nhosts && i < 10; ++i) {
port_arg = sprintf("%s -DOSB.coherence.wka%d.port=%d ", port_arg, i, port )
}
port_arg = sprintf("%s -DOSB.coherence.localhost.port=%d ", port_arg, port )
}
END {
start_args=sprintf("\"$EXTRA_JAVA_PROPERTIES %s %s %s\"", wka_arg, host_arg, port_arg)
print start_args
}
' $OSB_PROPS_FILE)
debug "START_ARGS = $START_ARGS"
if [ -z "$START_ARGS" ]; then
debug "No updates needed - Coherence cluster configuration not desired"
exit 0
fi
debug "Updating $OSB_DOMENV_FILE"
echo "EXTRA_JAVA_PROPERTIES=$START_ARGS" >> $OSB_DOMENV_FILE
debug "Done"