JMS w/ Oracle Provider...Thoughts

From: <james.e.mittler_at_us.pwcglobal.com>
Date: 2000/06/07
Message-ID: <8hlt8s$79d$1_at_nnrp1.deja.com>#1/1


I have been experimenting with the Oracle 8i Release 2 provider for Java Message Service and I have a couple of observations. I haven't seen too much traffic on this thread so I would be interested to know if anyone else is looking at Oracle as a JMS provider.

  1. Oracle has problems generating the queue tables if the database character set is UTF-8. Unless you generate a queue table in the SYSTEM schema, oracle throws the following error

ORA-22866: default character set is of varying width

The stored procedure call that fails looks like the following...

EXECUTE dbms_aqadm.create_queue_table (

   Queue_table            => 'aq.ObjMsgs_qtab',
   Queue_payload_type     => 'SYS.AQ$_JMS_TEXT_MESSAGE');

2) Oracle's QueueConnectionFactory does not register well within a JNDI context. I think that one of the really nice things about JMS is the capability of registering provider factories and queues in a JNDI

namespace. This way an application can easily port between JMS
providers. When I have tried doing this, Java returns an
exception..."Can only bind References or Referenceable objects"

This java code demonstrates the problem...

javax.naming.Context jmsContext;
QueueConnectionFactory qc_fact;

qc_fact = AQjmsFactory.getQueueConnectionFactory(host, ora_sid, port, driver); // this works...

jmsContext = new InitialDirContext();
jmsContext.bind("cn=FACTORY.ORACLE", qc_fact); // this bombs..

Any thoughts are much appreciated,

Jim

Sent via Deja.com http://www.deja.com/
Before you buy. Received on Wed Jun 07 2000 - 00:00:00 CEST

Original text of this message