しょしょくぶんぷ


分布式という概念は長い間燃えていたが、私はずっと理解しようとしなかった.最近rmiを研究している間にいくつか分かりました.JAvaの分散は、同じ仮想マシンにあるオブジェクトを使用するように、異なる仮想マシンオブジェクトを使用することです.そこでjbossのデータソースを試してみたいと思います.私はただ簡単に、この仮想マシンのデータソースは別のjvmのオブジェクトだと思っています.次はやはりコードをつけましょう.
package cxz.jndi;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.Properties;

import javax.naming.Context;
import javax.naming.InitialContext;

import javax.sql.DataSource;

public class GetJndi {

	public static void main(String[] args) throws Exception {
		Properties properties = new Properties();
		properties.put("java.naming.factory.initial",
				"org.jnp.interfaces.NamingContextFactory");
		properties.put(Context.PROVIDER_URL, "jnp://localhost:1099");
		properties.put("java.naming.factory.url.pkgs",
				"org.jboss.naming:org.jnp.interfaces");
		InitialContext ctx = new InitialContext(properties);
		DataSource datasource = (DataSource) ctx.lookup("java:/OracleDS");

		Connection conn = datasource.getConnection();
		PreparedStatement pstmt = conn.prepareStatement("select count(*) as counter from jobs");
		ResultSet rs = pstmt.executeQuery();
		if(rs.next()){
			System.out.println(rs.getInt(1));
		}
		
	}

}

次にjbossでデータソースを構成します.
注意点
このスクリプトを使用して起動します./run.sh -b 192.168.1.200 -Djboss.bind.adress=0.0.0.0クライアントエンジニアリングにはjboss/client/libの下にあるパッケージが必要です
jconsoleでjbossを管理する必要がある場合は、スクリプトrunを変更します.sh将JAVA_OPTS="$JAVA_OPTS-Dprogram.name=$PROGNAME"修正後:JAVA_OPTS="$JAVA_OPTS -Dprogram.name=$PROGNAME -Dcom.sun.management.jmxremote.port=9999 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false"