Thank you for reply.

You have right - i can't receiver this message using JMS API. The exception
comes from AQjmsConsumer class which is a receiver implementation from
oracle. I can't debug it deeper because i don't have the sources. It must be
some configuration issue.

Kind regards
Sebastian


willem.jiang wrote:
> 
> Please don't send the mail for request help to dev and user mail list at
> the same time. Most developer monitor these two mail list.
> 
> From the stack trace , I guess it's an AQ's setup issue.
> Maybe you can try to write a normal JMS code to test if you can get the
> message from the remote AQ's Queue.
> 
> 
> Willem
> 
> sebodev wrote:
>> Hi,
>> 
>> i'm using Oracle AQ with apache camel. I have a very simple code like
>> this:
>> 
>> ---
>> package pl.sbsd.apachecamel.oracleaq;
>> 
>> import javax.jms.ConnectionFactory;
>> 
>> import oracle.jdbc.pool.OracleDataSource;
>> import oracle.jms.AQjmsFactory;
>> 
>> import org.apache.camel.CamelContext;
>> import org.apache.camel.Consumer;
>> import org.apache.camel.Exchange;
>> import org.apache.camel.Processor;
>> import org.apache.camel.ProducerTemplate;
>> import org.apache.camel.component.jms.JmsComponent;
>> import org.apache.camel.impl.DefaultCamelContext;
>> 
>> public class OracleAQApp {
>> 
>>      private String uri;
>>      private String login;
>>      private String password;
>> 
>>      private final String jdbcUrl = "jdbc:oracle:thin:@xxx:1521:xxx";
>> 
>>      private CamelContext camel;
>>      private ConnectionFactory connectionFactory;
>>      private ProducerTemplate producerTemplate;
>> 
>>      public OracleAQApp(String uri, String login, String password)
>>                      throws Exception {
>>              this.uri = uri;
>>              this.login = login;
>>              this.password = password;
>>              OracleDataSource dataSource = new OracleDataSource();
>>              dataSource.setURL(jdbcUrl);
>>              dataSource.setUser(login);
>>              dataSource.setPassword(password);
>>              connectionFactory = 
>> AQjmsFactory.getQueueConnectionFactory(dataSource);
>>              camel = new DefaultCamelContext();
>>              JmsComponent jmsComponent = new JmsComponent(camel);
>>              jmsComponent.setConnectionFactory(connectionFactory);
>>              camel.addComponent("jms", jmsComponent);
>>              producerTemplate = camel.createProducerTemplate();
>>              Consumer consumer = camel.getEndpoint(uri).createConsumer(
>>                              new Processor() {
>> 
>>                                      public void process(Exchange exchange) 
>> throws Exception {
>>                                              System.out.println("New 
>> message!");
>>                                              
>> System.out.println(exchange.getIn().getBody());
>>                                      }
>> 
>>                              });
>>              consumer.start();
>>              camel.start();
>>      }
>> 
>>      public void send(String message) throws InterruptedException {
>>              producerTemplate.sendBody(uri, message);
>>              Thread.sleep(500000);
>>      }
>> 
>> }
>> ---
>> 
>> I'm sending some message to the queue and the consumer will consume it.
>> That
>> works with my local installation of oracle database. When i'm using
>> remote
>> database which is in the LAN then the messages are writting into the
>> queue
>> but consumer can't dequeue them. In the eclipse console i get this
>> message:
>> 
>> ---
>> Exception in thread "DefaultMessageListenerContainer-1"
>> java.lang.NullPointerException
>>      at java.lang.String.indexOf(String.java:1564)
>>      at java.lang.String.indexOf(String.java:1546)
>>      at
>> org.springframework.jms.support.JmsUtils.buildExceptionMessage(JmsUtils.java:255)
>>      at
>> org.springframework.jms.listener.DefaultMessageListenerContainer.handleListenerSetupFailure(DefaultMessageListenerContainer.java:745)
>>      at
>> org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java:897)
>>      at java.lang.Thread.run(Thread.java:595)
>> ---
>> 
>> I have debugged the DefaultMessageListenerContainer and there is a
>> exception
>> with information: "JMS-120: Dequeue failed.". I dont now what can it be.
>> Everythink works when i'm using local database. I've tested many jdbc
>> drivers "ojdbc*.jar" and oracle aq apis "aqapi*.jar" but nothing. I've
>> privileges to dequeue the messages.
>> 
>> Kind regards
>> Sebastian
> 
> 
> 

-- 
View this message in context: 
http://www.nabble.com/Apachem-Camel-with-Oracle-AQ-tp22841659p22849209.html
Sent from the Camel - Users mailing list archive at Nabble.com.

Reply via email to