> JBoss 3.2.0RC1, 3.0.4 and 3.0.5
>
> All my queues are persistent with the file based
PersistenceManager.
>
> When I queue messages I see them in
> server/default/db/jbossmq/file//QUEUENAME. It runs
fine when I run a
> scheduled task to pick these up. Life is good and
JBoss rocks :-)
>
> Now the problem; I stop JBoss while messages are
still queued. I see
> the files on disk. JBoss is started again, and it doesn't
see these
> messages. Nothing happens. I can submit new
messages to the queue and
> those are correctly processed, but the old messages
are still there,
> nothing happens.
>
> I use the PERSISTENT flag everywhere.
>
> Does anyone have a clue what could be the cause of
this? Configuration
> error or bug in JBossMQ? I've looked everywhere and
I'm not sure what
> to do next ...
Ah! I solved this one. I had this in jbossmq-
destinations.xml:
<mbean code="org.jboss.mq.server.jmx.Queue"
name="jboss.mq.destination:service=Queue,name=mcc
p/
FailedIncomingMessages">
<depends optional-attribute
name="DestinationManager">
jboss.mq:service=DestinationManager
</depends>
</mbean>
The problem is the slash in the destination name,
"mccp/FailedIncomingMessages". In both the
rollinglogged and file
persistence managers this is not handled correctly .. the
slash is not
escaped and interpreted as a path separator.
Before I file this as a bug report, does anyone know
if 'blah/bleh' is
a valid destination name? I would say yes, but I'm not
sure in which
specification to look for a confirmation.
S.
Logged In: YES
user_id=659570
Created a partial fix for this bug (patch #751562). Only
fixed rolling logged pm so far. Can submit a fix for the
rest if interested.
Logged In: YES
user_id=9459
If you are trying to bind the destination in a different context
you should use the JNDIName attribute.
I could introduce some validation to force a queue name to
follow
the java identifier rules but this could break existing
deployments.
Regards,
Adrian