SourceForge.net
2003-12-08 19:00:08 UTC
Bugs item #856383, was opened at 2003-12-08 19:00
Message generated for change (Tracker Item Submitted) made by Item Submitter
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=474136&aid=856383&group_id=54559
Category: None
Group: None
Status: Open
Resolution: None
Priority: 5
Submitted By: Andrew Surinov (grimreaper777)
Assigned to: Nobody/Anonymous (nobody)
Summary: queue names longer then 50 chars
Initial Comment:
Queue is created but QueueSender call throws an
exception
I think the root of the problem is in the table definitions:
destination name is varchar(255), while consumer name
is varchar(50)
Here is a piece of code (skipping some details):
String queueName
= "Very_Long_Queue_Name_Containing_More_than_50_ch
aracters";
jmsAdmin.addDestination(queueName, Boolean.TRUE);
//no exception, apparently queue has been created
successfully
QueueSession session = _connection.createQueueSession
(false, Session.AUTO_ACKNOWLEDGE);
Queue queue = (Queue) initialContext.lookup
(queueName);
QueueSender sender = session.createSender(queue);
BytesMessage bytesMessage =
session.createBytesMessage();
sender.send(bytesMessage);
//and this line throws an exception:
org.exolab.jms.persistence.PersistenceException: Cannot
add message handle id=ID:a0e13e0c-b8bc-1004-8a4f-
76cae27ea3c6 for
destination=Very_Long_Queue_Name_Containing_More_th
an_50_characters and
consumer=Very_Long_Queue_Name_Containing_More_tha
n_50_characters since the consumer cannot be mapped
to an id
at
org.exolab.jms.persistence.MessageHandles.addMessageH
andle(MessageHandles.java:253)
at
org.exolab.jms.persistence.RDBMSAdapter.addMessageHa
ndle(RDBMSAdapter.java:467)
at
org.exolab.jms.messagemgr.MessageHandleFactory.creat
ePersistentHandle(MessageHandleFactory.java:347)
at
org.exolab.jms.messagemgr.MessageMgr.addPersistentMe
ssage(MessageMgr.java:378)
at org.exolab.jms.messagemgr.MessageMgr.add
(MessageMgr.java:281)
at
org.exolab.jms.server.JmsServerSession.sendMessage
(JmsServerSession.java:350)
at
org.exolab.jms.client.intravm.IntravmJmsSessionStub.sen
dMessage(IntravmJmsSessionStub.java:162)
at
org.exolab.jms.client.JmsSession.sendMessage
(JmsSession.java:676)
at
org.exolab.jms.client.JmsMessageProducer.sendMessage
(JmsMessageProducer.java:238)
at org.exolab.jms.client.JmsQueueSender.send
(JmsQueueSender.java:156)
at org.exolab.jms.client.JmsQueueSender.send
(JmsQueueSender.java:105)
----------------------------------------------------------------------
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=474136&aid=856383&group_id=54559
Message generated for change (Tracker Item Submitted) made by Item Submitter
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=474136&aid=856383&group_id=54559
Category: None
Group: None
Status: Open
Resolution: None
Priority: 5
Submitted By: Andrew Surinov (grimreaper777)
Assigned to: Nobody/Anonymous (nobody)
Summary: queue names longer then 50 chars
Initial Comment:
Queue is created but QueueSender call throws an
exception
I think the root of the problem is in the table definitions:
destination name is varchar(255), while consumer name
is varchar(50)
Here is a piece of code (skipping some details):
String queueName
= "Very_Long_Queue_Name_Containing_More_than_50_ch
aracters";
jmsAdmin.addDestination(queueName, Boolean.TRUE);
//no exception, apparently queue has been created
successfully
QueueSession session = _connection.createQueueSession
(false, Session.AUTO_ACKNOWLEDGE);
Queue queue = (Queue) initialContext.lookup
(queueName);
QueueSender sender = session.createSender(queue);
BytesMessage bytesMessage =
session.createBytesMessage();
sender.send(bytesMessage);
//and this line throws an exception:
org.exolab.jms.persistence.PersistenceException: Cannot
add message handle id=ID:a0e13e0c-b8bc-1004-8a4f-
76cae27ea3c6 for
destination=Very_Long_Queue_Name_Containing_More_th
an_50_characters and
consumer=Very_Long_Queue_Name_Containing_More_tha
n_50_characters since the consumer cannot be mapped
to an id
at
org.exolab.jms.persistence.MessageHandles.addMessageH
andle(MessageHandles.java:253)
at
org.exolab.jms.persistence.RDBMSAdapter.addMessageHa
ndle(RDBMSAdapter.java:467)
at
org.exolab.jms.messagemgr.MessageHandleFactory.creat
ePersistentHandle(MessageHandleFactory.java:347)
at
org.exolab.jms.messagemgr.MessageMgr.addPersistentMe
ssage(MessageMgr.java:378)
at org.exolab.jms.messagemgr.MessageMgr.add
(MessageMgr.java:281)
at
org.exolab.jms.server.JmsServerSession.sendMessage
(JmsServerSession.java:350)
at
org.exolab.jms.client.intravm.IntravmJmsSessionStub.sen
dMessage(IntravmJmsSessionStub.java:162)
at
org.exolab.jms.client.JmsSession.sendMessage
(JmsSession.java:676)
at
org.exolab.jms.client.JmsMessageProducer.sendMessage
(JmsMessageProducer.java:238)
at org.exolab.jms.client.JmsQueueSender.send
(JmsQueueSender.java:156)
at org.exolab.jms.client.JmsQueueSender.send
(JmsQueueSender.java:105)
----------------------------------------------------------------------
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=474136&aid=856383&group_id=54559