プログラミング・ガイド

     前  次    新規ウィンドウで目次を開く    PDFとして表示 - 新規ウィンドウ  Adobe Readerを入手 - 新規ウィンドウ
コンテンツはここから始まります

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クライアントを呼び出す前に、次の構成を行う必要があります。

 


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);

  先頭に戻る       前  次