I have debugged JMSServerControlImpl.createQueue and durable is true.
I have also tried via JConsole and those queues DO persist after a restart?? Very weird seeing as the JMS and JMX are calling the same object.
The only difference between the JMS and JMX call is that the JMS call is being executed from within the JMS hornet code but the JMX call if via the MBean server. I've included the two different stack traces.
Daemon System Thread [RMI TCP Connection(9)-127.0.0.1] (Suspended (breakpoint at line 291 in JMSServerControlImpl))
JMSServerControlImpl.createQueue(String, String, String, boolean) line: 291
JMSServerControlImpl.createQueue(String) line: 276
NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not available [native method]
NativeMethodAccessorImpl.invoke(Object, Object[]) line: not available
DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: not available
Method.invoke(Object, Object...) line: not available
StandardMBeanIntrospector.invokeM2(Method, Object, Object[], Object) line: not available
StandardMBeanIntrospector.invokeM2(Object, Object, Object[], Object) line: not available
StandardMBeanIntrospector(MBeanIntrospector<M>).invokeM(M, Object, Object[], Object) line: not available
PerInterface<M>.invoke(Object, String, Object[], String[], Object) line: not available
StandardMBeanSupport(MBeanSupport<M>).invoke(String, Object[], String[]) line: not available
JMSServerControlImpl(StandardMBean).invoke(String, Object[], String[]) line: not available
DefaultMBeanServerInterceptor.invoke(ObjectName, String, Object[], String[]) line: not available
JmxMBeanServer.invoke(ObjectName, String, Object[], String[]) line: not available
RMIConnectionImpl.doOperation(int, Object[]) line: not available
RMIConnectionImpl.access$200(RMIConnectionImpl, int, Object[]) line: not available
RMIConnectionImpl$PrivilegedOperation.run() line: not available
RMIConnectionImpl.doPrivilegedOperation(int, Object[], Subject) line: not available
RMIConnectionImpl.invoke(ObjectName, String, MarshalledObject, String[], Subject) line: not available
GeneratedMethodAccessor58.invoke(Object, Object[]) line: not available
DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: not available
Method.invoke(Object, Object...) line: not available
UnicastServerRef2(UnicastServerRef).dispatch(Remote, RemoteCall) line: not available
Transport$1.run() line: not available
AccessController.doPrivileged(PrivilegedExceptionAction<T>, AccessControlContext) line: not available [native method]
TCPTransport(Transport).serviceCall(RemoteCall) line: not available
TCPTransport.handleMessages(Connection, boolean) line: not available
TCPTransport$ConnectionHandler.run0() line: not available
TCPTransport$ConnectionHandler.run() line: not available
ThreadPoolExecutor$Worker.runTask(Runnable) line: not available
ThreadPoolExecutor$Worker.run() line: not available
Thread.run() line: not available
The JMX stack trace
Daemon System Thread [RMI TCP Connection(9)-127.0.0.1] (Suspended (breakpoint at line 291 in JMSServerControlImpl))
JMSServerControlImpl.createQueue(String, String, String, boolean) line: 291
JMSServerControlImpl.createQueue(String) line: 276
NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not available [native method]
NativeMethodAccessorImpl.invoke(Object, Object[]) line: not available
DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: not available
Method.invoke(Object, Object...) line: not available
StandardMBeanIntrospector.invokeM2(Method, Object, Object[], Object) line: not available
StandardMBeanIntrospector.invokeM2(Object, Object, Object[], Object) line: not available
StandardMBeanIntrospector(MBeanIntrospector<M>).invokeM(M, Object, Object[], Object) line: not available
PerInterface<M>.invoke(Object, String, Object[], String[], Object) line: not available
StandardMBeanSupport(MBeanSupport<M>).invoke(String, Object[], String[]) line: not available
JMSServerControlImpl(StandardMBean).invoke(String, Object[], String[]) line: not available
DefaultMBeanServerInterceptor.invoke(ObjectName, String, Object[], String[]) line: not available
JmxMBeanServer.invoke(ObjectName, String, Object[], String[]) line: not available
RMIConnectionImpl.doOperation(int, Object[]) line: not available
RMIConnectionImpl.access$200(RMIConnectionImpl, int, Object[]) line: not available
RMIConnectionImpl$PrivilegedOperation.run() line: not available
RMIConnectionImpl.doPrivilegedOperation(int, Object[], Subject) line: not available
RMIConnectionImpl.invoke(ObjectName, String, MarshalledObject, String[], Subject) line: not available
GeneratedMethodAccessor58.invoke(Object, Object[]) line: not available
DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: not available
Method.invoke(Object, Object...) line: not available
UnicastServerRef2(UnicastServerRef).dispatch(Remote, RemoteCall) line: not available
Transport$1.run() line: not available
AccessController.doPrivileged(PrivilegedExceptionAction<T>, AccessControlContext) line: not available [native method]
TCPTransport(Transport).serviceCall(RemoteCall) line: not available
TCPTransport.handleMessages(Connection, boolean) line: not available
TCPTransport$ConnectionHandler.run0() line: not available
TCPTransport$ConnectionHandler.run() line: not available
ThreadPoolExecutor$Worker.runTask(Runnable) line: not available
ThreadPoolExecutor$Worker.run() line: not available
Thread.run() line: not available
The JMS stack trace
Thread [Old I/O server worker (parentId: 13595063, channelId: 27048425, null => localhost/127.0.0.1:5445)] (Suspended (breakpoint at line 291 in JMSServerControlImpl))
JMSServerControlImpl.createQueue(String, String, String, boolean) line: 291
JMSServerControlImpl.createQueue(String, String) line: 281
NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not available [native method]
NativeMethodAccessorImpl.invoke(Object, Object[]) line: not available
DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: not available
Method.invoke(Object, Object...) line: not available
ManagementServiceImpl.invokeOperation(String, String, Object[]) line: 834
ManagementServiceImpl.handleMessage(ServerMessage) line: 433
ServerSessionImpl.handleManagementMessage(ServerMessage, boolean) line: 1107
ServerSessionImpl.send(ServerMessage, boolean) line: 996
ServerSessionPacketHandler.handlePacket(Packet) line: 461
ChannelImpl.handlePacket(Packet) line: 471
RemotingConnectionImpl.doBufferReceived(Packet) line: 451
RemotingConnectionImpl.bufferReceived(Object, HornetQBuffer) line: 412
RemotingServiceImpl$DelegatingBufferHandler.bufferReceived(Object, HornetQBuffer) line: 459
NettyAcceptor$HornetQServerChannelHandler(HornetQChannelHandler).messageReceived(ChannelHandlerContext, MessageEvent) line: 67
NettyAcceptor$HornetQServerChannelHandler(SimpleChannelHandler).handleUpstream(ChannelHandlerContext, ChannelEvent) line: 100
StaticChannelPipeline.sendUpstream(StaticChannelPipeline$StaticChannelHandlerContext, ChannelEvent) line: 362
StaticChannelPipeline$StaticChannelHandlerContext.sendUpstream(ChannelEvent) line: 514
Channels.fireMessageReceived(ChannelHandlerContext, Object) line: 287
HornetQFrameDecoder2.decode(ChannelHandlerContext, ChannelBuffer) line: 169
HornetQFrameDecoder2.messageReceived(ChannelHandlerContext, MessageEvent) line: 134
HornetQFrameDecoder2(SimpleChannelUpstreamHandler).handleUpstream(ChannelHandlerContext, ChannelEvent) line: 80
StaticChannelPipeline.sendUpstream(StaticChannelPipeline$StaticChannelHandlerContext, ChannelEvent) line: 362
StaticChannelPipeline.sendUpstream(ChannelEvent) line: 357
Channels.fireMessageReceived(Channel, Object, SocketAddress) line: 274
Channels.fireMessageReceived(Channel, Object) line: 261
OioWorker.run() line: 90
ThreadRenamingRunnable.run() line: 108
IoWorkerRunnable.run() line: 46
VirtualExecutorService$ChildExecutorRunnable.run() line: 181
ThreadPoolExecutor$Worker.runTask(Runnable) line: not available
ThreadPoolExecutor$Worker.run() line: not available
Thread.run() line: not available
Could the earlier hornet code be somehow preventing the Journal file to be written??