目次 前 次 PDF


Oracle Tuxedo JMXインタフェース

Oracle Tuxedo JMXインタフェース
この章では、次の項について説明します。
概要
tlistenに埋め込まれたJMXエージェントにより、JMX MBeanのリストが提供されます。それらのMBeanによってエクスポートされた機能を使用すると、JMXを呼び出してOracle Tuxedoアプリケーションをモニターおよび管理できます。JMX JavaによってTuxedoサーバーを停止する例を次に示します。
リスト1-1 JMX JavaクライアントによるTuxedoサーバーの停止
// Client.java
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
 
import javax.management.MBeanServerConnection;
import javax.management.ObjectInstance;
import javax.management.ObjectName;
import javax.management.remote.JMXConnector;
import javax.management.remote.JMXConnectorFactory;
import javax.management.remote.JMXServiceURL;
 
import oracle.tuxedo.jmx.tux.exception.JMXPropertiesException;
import oracle.tuxedo.jmx.tux.utility.Encryption;
 
public class Client {
 
public static void main(String[] args) throws IOException,
JMXPropertiesException, Exception {
String host = "XXXXXX.oracle.com";
String port = "26999";
 
String username = "oracle";
// Tuxedo password and application password must be encrypted.
String password = Encryption.getInstance().encrypt("password");
// Tuxedo application password.
String appPassword = Encryption.getInstance().encrypt("apppassword");
 
String[] credentials = new String[] { username, password, appPassword };
Map<String, Object> env = new HashMap<String, Object>();
env.put("jmx.remote.credentials", credentials);
 
// Create an RMI connector client and
// connect it to the RMI connector server;
JMXServiceURL url = new JMXServiceURL(String.format(
"service:jmx:rmi://%s:%s/jndi/rmi://%s:%s/server", host, port,
host, port));
 
JMXConnector jmxc = JMXConnectorFactory.connect(url, env);
MBeanServerConnection mbsc = jmxc.getMBeanServerConnection(null);
// Get AdminBean by the MBean name
Set<?> mbeans = mbsc.queryMBeans(new ObjectName(
"DefaultJMXDomain:type=adminBean"), null);
ObjectInstance objectInstance = (ObjectInstance) mbeans.iterator()
.next();
ObjectName objectName = objectInstance.getObjectName();
// The parameter value list for shutdownServer methond.
Object[] params = { "/testarea/oracle/test/tuxconfig", "APPGRP", 102, 0, null };
// The parameter type list for shutdown Server method.
String[] signature = { String.class.getName(), String.class.getName(),
Integer.class.getName(), Integer.class.getName(),
String.class.getName() };
Object result = mbsc.invoke(objectName, "shutdownServer", params,
signature);
System.out.print(result);
}
}
 
次のコマンドを実行して、Javaファイルをコンパイルします。
javac -classpath $TUXDIR/jmx/tmjmx_exceptions.jar:$TUXDIR/jmx/ tmjmx_tux.jar Client.java
Client.classが生成されます。このクライアントを実行するには、次のコマンドを使用します。
java -classpath $TUXDIR/jmx/tmjmx_exceptions.jar:$TUXDIR/jmx/tmjmx_tux.jar:. Client
出力結果は次のとおりです。
Shutting down server processes ...
 
Server Id = 102 Group Id = APPGRP Machine = SITE1: shutdown succeeded
1 process stopped.
詳細は、MBeanおよびJMX操作に関する項を参照してください。
構成
JMXクライアントを呼び出す前に、次の構成を行う必要があります。
tlistenおよびTuxedoドメインを起動します。詳細は、Enterprise Manager for Oracle Tuxedoスタート・ガイドのtlistenプロセスの開始に関する項、UBBCONFIGファイルの構成に関する項、およびUBBCONFIGのロードとOracle Tuxedoの起動に関する項を参照してください。
セキュリティがNONEではないTuxedoドメインでは、Tuxedoユーザーをtpsysadmとして追加します。たとえば、次のようにします。tpusradd -g group1 -c tpsysadm user1
クライアントを実行してtlistenでJMXエージェントを呼び出すときに、$TUXDIR/udataobj/jmx/tmjmx_exceptions.jarをクライアントのクラスパスに追加します。
JMX接続の作成
次のJMXサービスURLを使用して、JMX接続を作成します。
service:jmx:rmi:///jndi/rmi://rmihost:rmiport/server
rmihostrmiportは、–jオプションでtlistenに構成されるホストとポートです。このオプションの構成後、JMXエージェントはJNIテクノロジによりtlistenプロセスで起動されたJVMで実行されます。
jmx.remote.credentialsは、次の順序の解析済文字配列にする必要があります。
 
順序
Tuxedo認証と認可データ
コメント
0
ユーザー名
省略可能。TuxedoセキュリティまたはJMXセキュリティが有効な場合は必須です。それ以外の場合は空白のままにします。Tuxedoセキュリティが有効な場合は、Tuxedoユーザー名を指定します。JMXセキュリティが有効な場合は、jmxaaacfgにより追加されたJMXユーザー名を指定します。
1
パスワード
省略可能。TuxedoセキュリティまたはJMXセキュリティが有効な場合は必須です。それ以外の場合は空白のままにします。パスワードがNULLではない場合は、$TUXDIR/jmx/tmjmx_tux.jaroracle.tuxedo.jmx.tux.utility.Encryption.encrypt()メソッドを使用して暗号化する必要があります。
2
アプリケーション・パスワード
省略可能。Tuxedoセキュリティが有効な場合は必須です。それ以外の場合は空白のままにします。アプリケーション・パスワードがNULLではない場合は、$TUXDIR/jmx/tmjmx_tux.jaroracle.tuxedo.jmx.tux.utility.Encryption.encrypt()メソッドを使用して暗号化する必要があります。
3
DOMAINID
省略可能。1つのtlistenに複数のドメインがある場合は必須です。
4
IPCKEY
省略可能。1つのtlistenに複数のドメインがある場合は必須です。
5
TUXCONFIG
省略可能。tlistenの再起動後は必須です。
6
NONTUXAUTH
省略可能。jmx.remote.credentialsのリストにNONTUXAUTHを追加します。JMXサーバーに接続中は、Tuxedo認証は行われません。この場合、Tuxedo認証が必要なJMX操作の呼出しは失敗します。
JMXコネクタの作成例を次に示します。
リスト1-2 JMXコネクタの作成
String[] credentials = new String[] { username, password, appPassword };
Map<String, Object> env = new HashMap<String, Object>();
env.put("jmx.remote.credentials", credentials);
 
// Create an RMI connector client and
// connect it to the RMI connector server;
JMXServiceURL url = new JMXServiceURL(String.format(
"service:jmx:rmi://%s:%s/jndi/rmi://%s:%s/server", host, port,
host, port));
 
JMXConnector jmxc = JMXConnectorFactory.connect(url, env);
 
 

Copyright ©1994, 2017,Oracle and/or its affiliates. All rights reserved