Discussion:
[openjms-developer] [ openjms-Bugs-856383 ] queue names longer then 50 chars
SourceForge.net
2004-01-02 07:45:36 UTC
Permalink
Bugs item #856383, was opened at 2003-12-09 06:00
Message generated for change (Comment added) made by tanderson
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=474136&aid=856383&group_id=54559

Category: persistence
Group: v0.7.6-rc2
Status: Open
Resolution: None
Priority: 5
Submitted By: Andrew Surinov (grimreaper777)
Assigned to: Tim Anderson (tanderson)
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)



----------------------------------------------------------------------
Comment By: Tim Anderson (tanderson)
Date: 2004-01-02 18:45

Message:
Logged In: YES
user_id=557161

You're correct. There is a mismatch between the master
schema.xml (src/main/org/exolab/jms/tools/db/schema.xml)
definition and those in the src/config/db/create*.sql scripts.
The schema.xml file has both destination and consumer
names as varchar(252), whereas most of the sql scripts have
the consumer name as varchar(50).
Will update them.


----------------------------------------------------------------------

You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=474136&aid=856383&group_id=54559
SourceForge.net
2004-01-03 03:36:10 UTC
Permalink
Bugs item #856383, was opened at 2003-12-09 06:00
Message generated for change (Comment added) made by tanderson
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=474136&aid=856383&group_id=54559

Category: persistence
Group: v0.7.6-rc2
Status: Closed
Resolution: Fixed
Priority: 5
Submitted By: Andrew Surinov (grimreaper777)
Assigned to: Tim Anderson (tanderson)
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)



----------------------------------------------------------------------
Comment By: Tim Anderson (tanderson)
Date: 2004-01-03 14:36

Message:
Logged In: YES
user_id=557161

The create_*.sql scripts have been updated so that the
consumer name is now the same as the destination name.
Note that the consumers table has a primary key on name
and destination id - this could exceed the key size limit for
some RDBMS providers.

----------------------------------------------------------------------

Comment By: Tim Anderson (tanderson)
Date: 2004-01-02 18:45

Message:
Logged In: YES
user_id=557161

You're correct. There is a mismatch between the master
schema.xml (src/main/org/exolab/jms/tools/db/schema.xml)
definition and those in the src/config/db/create*.sql scripts.
The schema.xml file has both destination and consumer
names as varchar(252), whereas most of the sql scripts have
the consumer name as varchar(50).
Will update them.


----------------------------------------------------------------------

You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=474136&aid=856383&group_id=54559
Loading...