To work with Java Naming and Directory Interface (JNDI) in OJMS , which is the JMS interface for AQ, we need to register the oracle database with LDAP server. JMS administrator can register ConnectionFactory objects in a LDAP server.
Lets check following sample code, which is used to register the connection factory objects @ LDAP server.
Lets check following sample code, which is used to register the connection factory objects @ LDAP server.
void register_Factory_in_LDAP() throws Exception {
Hashtable env = new Hashtable();
// ldap settings
env.put(Context.INITIAL_CONTEXT_FACTORY, AQjmsConstants.INIT_CTX_FACTORY);
env.put(Context.PROVIDER_URL, "ldap://localhost:10389/");
env.put(AQjmsConstants.SERVER_DN, "cn=ORCL,cn=OracleContext,ou=Services, o=sgi,c=us");
env.put(Context.SECURITY_PRINCIPAL, "uid=ratha,ou=Services, o=sgi,c=us");
env.put(Context.SECURITY_CREDENTIALS, "secret");
env.put(Context.SECURITY_AUTHENTICATION, "simple");
String url = "jdbc:oracle:thin:@localhost:1521/orcl";
Properties properties = new Properties();
properties.setProperty("user", "ratha");
properties.setProperty("password", "ratha");
try {
AQjmsFactory.registerConnectionFactory(env, "test_queue_factory", url, properties,
"queue");
System.out.println("Connection factory craeted ");
} catch (Exception e) {
e.printStackTrace();
}
}
Hashtable
// ldap settings
env.put(Context.INITIAL_CONTEXT_FACTORY, AQjmsConstants.INIT_CTX_FACTORY);
env.put(Context.PROVIDER_URL, "ldap://localhost:10389/");
env.put(AQjmsConstants.SERVER_DN, "cn=ORCL,cn=OracleContext,ou=Services, o=sgi,c=us");
env.put(Context.SECURITY_PRINCIPAL, "uid=ratha,ou=Services, o=sgi,c=us");
env.put(Context.SECURITY_CREDENTIALS, "secret");
env.put(Context.SECURITY_AUTHENTICATION, "simple");
String url = "jdbc:oracle:thin:@localhost:1521/orcl";
Properties properties = new Properties();
properties.setProperty("user", "ratha");
properties.setProperty("password", "ratha");
try {
AQjmsFactory.registerConnectionFactory(env, "test_queue_factory", url, properties,
"queue");
System.out.println("Connection factory craeted ");
} catch (Exception e) {
e.printStackTrace();
}
}
// DO lookup
void get_Factory_from_LDAP() throws Exception {
Hashtable env = new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY, AQjmsConstants.INIT_CTX_FACTORY);
// ldapserver is your LDAP host and 389 is your port
env.put(Context.INITIAL_CONTEXT_FACTORY, AQjmsConstants.INIT_CTX_FACTORY);
env.put(Context.PROVIDER_URL, "ldap://localhost:10388/");
env.put(Context.SECURITY_PRINCIPAL, "uid=ratha,ou=Services, o=sgi,c=us");
env.put(Context.SECURITY_CREDENTIALS, "secret");
DirContext inictx = new InitialDirContext(env);
inictx = (DirContext) inictx.lookup("cn=ORCL,cn=OracleContext,ou=Services, o=sgi,c=us");
// go to the connection factory holder cn=OraclDBConnections
DirContext connctx = (DirContext) inictx.lookup("cn=oracledbconnections");
// get connection factory "test_queue_factory"
QueueConnectionFactory qc_fact = (QueueConnectionFactory) connctx.lookup("cn=ratha");
System.out.println("Factory look up success " + qc_fact.toString());
QueueConnection QCon = qc_fact.createQueueConnection();
System.out.println("Connection created " + QCon.toString());
DirContext destctxQF = (DirContext) inictx.lookup("cn=OracleDBQueues");
System.out.println("OracleDBQueues look up success " + destctxQF.toString());
Queue queue = (Queue) destctxQF.lookup("cn=ratha.test");
System.out.println("Queue look up success :" + queue.toString());
Session session = QCon.createQueueSession(true, QueueSession.AUTO_ACKNOWLEDGE);
QCon.start();
QueueSender sender = ((QueueSession) session).createSender(queue);
System.out.println("Sender creation success :" + sender.toString());
String msg = "test";
TextMessage message = session.createTextMessage(msg);
sender.send(message);
// MessageConsumer consumer = session.createConsumer(queue);
// TextMessage msg2 = (TextMessage) consumer.receive();
// System.out.println("MESSAGE RECEIVED " + msg2.getText());
}
void get_Factory_from_LDAP() throws Exception {
Hashtable
env.put(Context.INITIAL_CONTEXT_FACTORY, AQjmsConstants.INIT_CTX_FACTORY);
// ldapserver is your LDAP host and 389 is your port
env.put(Context.INITIAL_CONTEXT_FACTORY, AQjmsConstants.INIT_CTX_FACTORY);
env.put(Context.PROVIDER_URL, "ldap://localhost:10388/");
env.put(Context.SECURITY_PRINCIPAL, "uid=ratha,ou=Services, o=sgi,c=us");
env.put(Context.SECURITY_CREDENTIALS, "secret");
DirContext inictx = new InitialDirContext(env);
inictx = (DirContext) inictx.lookup("cn=ORCL,cn=OracleContext,ou=Services, o=sgi,c=us");
// go to the connection factory holder cn=OraclDBConnections
DirContext connctx = (DirContext) inictx.lookup("cn=oracledbconnections");
// get connection factory "test_queue_factory"
QueueConnectionFactory qc_fact = (QueueConnectionFactory) connctx.lookup("cn=ratha");
System.out.println("Factory look up success " + qc_fact.toString());
QueueConnection QCon = qc_fact.createQueueConnection();
System.out.println("Connection created " + QCon.toString());
DirContext destctxQF = (DirContext) inictx.lookup("cn=OracleDBQueues");
System.out.println("OracleDBQueues look up success " + destctxQF.toString());
Queue queue = (Queue) destctxQF.lookup("cn=ratha.test");
System.out.println("Queue look up success :" + queue.toString());
Session session = QCon.createQueueSession(true, QueueSession.AUTO_ACKNOWLEDGE);
QCon.start();
QueueSender sender = ((QueueSession) session).createSender(queue);
System.out.println("Sender creation success :" + sender.toString());
String msg = "test";
TextMessage message = session.createTextMessage(msg);
// TextMessage msg2 = (TextMessage) consumer.receive();
// System.out.println("MESSAGE RECEIVED " + msg2.getText());
No comments:
Post a Comment