You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@activemq.apache.org by yg_cvg <yu...@ugcs.caltech.edu> on 2008/04/09 00:13:13 UTC

completely disabling Kaha Store

I am embedding an ActiveMQ broker directly inside an app (long story).  I am
doing so explicitly with Java code (i.e., "broker = new BrokerService();",
etc.).  I would like to completely avoid any writing of files when
performing normal JMS tasks, such as sending and receiving messages (again,
long story... access control issues).  [This may change later, but for now,
I am trying to avoid disk use.  Persistence is not a concern.]  I do this to
create/start the broker:

        m_broker = new BrokerService();
        m_broker.setBrokerName(S_STR_BROKER_NAME);
        m_broker.addConnector("vm://" + S_STR_BROKER_NAME);
        m_broker.setUseJmx(false);
        m_broker.setPersistent(false);
        m_broker.setPersistenceAdapter(null);
        m_broker.start();

However, when I start the broker, I see the following log output:

INFO [main]: ActiveMQ 5.0.0 JMS Message Broker (mainbroker) is starting
INFO [main]: For help or more information please see:
http://activemq.apache.org/
INFO [main]: AMQStore starting using directory: activemq-data/mainbroker
INFO [main]: Kaha Store using data directory
activemq-data/mainbroker/kr-store/state
INFO [main]: Active data files: []
WARN [main]: The ReferenceStore is not valid - recovering ...
INFO [main]: Kaha Store successfully deleted data directory
activemq-data/mainbroker/kr-store/data
INFO [main]: Journal Recovery Started from: DataManager:(data-)
INFO [main]: Recovered 0 operations from redo log in 0.015 seconds.
INFO [main]: Finished recovering the ReferenceStore
INFO [main]: Using Persistence Adapter: MemoryPersistenceAdapter
INFO [main]: Kaha Store using data directory
activemq-data/mainbroker/kr-store/data
INFO [main]: Connector vm://mainbroker Started
INFO [main]: ActiveMQ JMS Message Broker (mainbroker,
ID:yurik2.engr.akamai.com-54085-1207691353487-0:0) started

So, on the one hand, it is using MemoryPersistenceAdapter (as I want, I
think), but also it's initializing some Kaha stuff (and also Journal
stuff... not sure if that's separate or the same thing) -- which I'd rather
it not do, if possible.

Later, when the in-VM client (which, unlike the above broker initialization
code, is constrained by rather strict security rules about file writing)
does a JMS send(), I get a security exception:

javax.jms.JMSException: access denied (java.io.FilePermission
activemq-data/mainbroker/kr-store/data read)
        at
org.apache.activemq.util.JMSExceptionSupport.create(JMSExceptionSupport.java:49)
        at
org.apache.activemq.ActiveMQConnection.syncSendPacket(ActiveMQConnection.java:1178)
        at
org.apache.activemq.ActiveMQSession.send(ActiveMQSession.java:1640)
        at
org.apache.activemq.ActiveMQMessageProducer.send(ActiveMQMessageProducer.java:226)
        at
org.apache.activemq.ActiveMQMessageProducerSupport.send(ActiveMQMessageProducerSupport.java:240)
        at com.akamai.edgejava.tests.JmsTest.doGet(JmsTest.java:142)
__NOTE__ This is where I do send().
        ...etc...
Caused by: java.security.AccessControlException: access denied
(java.io.FilePermission activemq-data/mainbroker/kr-store/data read)
        at
java.security.AccessControlContext.checkPermission(AccessControlContext.java:323)
        at
java.security.AccessController.checkPermission(AccessController.java:546)
        at
java.lang.SecurityManager.checkPermission(SecurityManager.java:532)
        at java.lang.SecurityManager.checkRead(SecurityManager.java:871)
        at java.io.File.list(File.java:971)
        at java.io.File.listFiles(File.java:1090)
        at
org.apache.activemq.kaha.impl.data.DataManagerImpl.<init>(DataManagerImpl.java:70)
        at
org.apache.activemq.kaha.impl.KahaStore.getDataManager(KahaStore.java:358)
        at
org.apache.activemq.kaha.impl.KahaStore.getMapContainer(KahaStore.java:221)
        at
org.apache.activemq.store.kahadaptor.KahaReferenceStoreAdapter.getMapReferenceContainer(KahaReferenceStoreAdapter.java:198)
        at
org.apache.activemq.store.kahadaptor.KahaReferenceStoreAdapter.createTopicReferenceStore(KahaReferenceStoreAdapter.java:165)
        at
org.apache.activemq.store.amq.AMQPersistenceAdapter.createTopicMessageStore(AMQPersistenceAdapter.java:414)
        at
org.apache.activemq.broker.region.DestinationFactoryImpl.createDestination(DestinationFactoryImpl.java:114)
        at
org.apache.activemq.broker.region.AbstractRegion.createDestination(AbstractRegion.java:399)
        at
org.apache.activemq.broker.jmx.ManagedTopicRegion.createDestination(ManagedTopicRegion.java:56)
        at
org.apache.activemq.broker.region.AbstractRegion.addDestination(AbstractRegion.java:116)
        at
org.apache.activemq.broker.region.RegionBroker.addDestination(RegionBroker.java:259)
        at
org.apache.activemq.broker.region.RegionBroker.send(RegionBroker.java:382)
        at
org.apache.activemq.broker.TransactionBroker.send(TransactionBroker.java:224)
        at
org.apache.activemq.broker.BrokerFilter.send(BrokerFilter.java:125)
        at
org.apache.activemq.broker.CompositeDestinationBroker.send(CompositeDestinationBroker.java:95)
        at
org.apache.activemq.broker.MutableBrokerFilter.send(MutableBrokerFilter.java:135)
        at
org.apache.activemq.broker.TransportConnection.processMessage(TransportConnection.java:434)
...etc...

It's trying to read "activemq-data/mainbroker/kr-store/data", which is not
allowed for reasons I won't go into here.  Why is it trying to do this Kaha
stuff, if I want memory persistence only?  Is there a way to disable this?

Thank you so much.
-- 
View this message in context: http://www.nabble.com/completely-disabling-Kaha-Store-tp16575091s2354p16575091.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.


Re: completely disabling Kaha Store

Posted by yg_cvg <yu...@ugcs.caltech.edu>.
Ah.  Okay, thanks.


rajdavies wrote:
> 
> Unfortunately you need to set any persistence parameters before adding  
> a connector ...
> 
> 
> 
> On 9 Apr 2008, at 00:44, yg_cvg wrote:
> 
>>
>> Oddly enough, doing
>>
>>     m_broker = BrokerFactory.createBroker("broker:()? 
>> persistent=false");
>>
>> instead of the first line below fixed the problem.  Also, a bunch of
>> warnings about JMX (which I also explicitly tried to disable before)  
>> went
>> away.  I'm not really sure why it fixed it, but it did. Based on the  
>> logging
>> before the fix, it looked like it was trying to do some Kaha stuff  
>> BEFORE
>> the setPersistent(false) line executes, so maybe that enables  
>> certain Kaha
>> stuff to keep happening even after that line, though I'm still not  
>> sure why.
>>
>> Any insight would still be appreciated, but the above seems to fix the
>> problem.
>>
>>
>> yg_cvg wrote:
>>>
>>> I am embedding an ActiveMQ broker directly inside an app (long  
>>> story).  I
>>> am doing so explicitly with Java code (i.e., "broker = new
>>> BrokerService();", etc.).  I would like to completely avoid any  
>>> writing of
>>> files when performing normal JMS tasks, such as sending and receiving
>>> messages (again, long story... access control issues).  [This may  
>>> change
>>> later, but for now, I am trying to avoid disk use.  Persistence is  
>>> not a
>>> concern.]  I do this to create/start the broker:
>>>
>>>        m_broker = new BrokerService();
>>>        m_broker.setBrokerName(S_STR_BROKER_NAME);
>>>        m_broker.addConnector("vm://" + S_STR_BROKER_NAME);
>>>        m_broker.setUseJmx(false);
>>>        m_broker.setPersistent(false);
>>>        m_broker.setPersistenceAdapter(null);
>>>        m_broker.start();
>>>
>>> However, when I start the broker, I see the following log output:
>>>
>>> INFO [main]: ActiveMQ 5.0.0 JMS Message Broker (mainbroker) is  
>>> starting
>>> INFO [main]: For help or more information please see:
>>> http://activemq.apache.org/
>>> INFO [main]: AMQStore starting using directory: activemq-data/ 
>>> mainbroker
>>> INFO [main]: Kaha Store using data directory
>>> activemq-data/mainbroker/kr-store/state
>>> INFO [main]: Active data files: []
>>> WARN [main]: The ReferenceStore is not valid - recovering ...
>>> INFO [main]: Kaha Store successfully deleted data directory
>>> activemq-data/mainbroker/kr-store/data
>>> INFO [main]: Journal Recovery Started from: DataManager:(data-)
>>> INFO [main]: Recovered 0 operations from redo log in 0.015 seconds.
>>> INFO [main]: Finished recovering the ReferenceStore
>>> INFO [main]: Using Persistence Adapter: MemoryPersistenceAdapter
>>> INFO [main]: Kaha Store using data directory
>>> activemq-data/mainbroker/kr-store/data
>>> INFO [main]: Connector vm://mainbroker Started
>>> INFO [main]: ActiveMQ JMS Message Broker (mainbroker,
>>> ID:yurik2.engr.akamai.com-54085-1207691353487-0:0) started
>>>
>>> So, on the one hand, it is using MemoryPersistenceAdapter (as I  
>>> want, I
>>> think), but also it's initializing some Kaha stuff (and also Journal
>>> stuff... not sure if that's separate or the same thing) -- which I'd
>>> rather it not do, if possible.
>>>
>>> Later, when the in-VM client (which, unlike the above broker
>>> initialization code, is constrained by rather strict security rules  
>>> about
>>> file writing) does a JMS send(), I get a security exception:
>>>
>>> javax.jms.JMSException: access denied (java.io.FilePermission
>>> activemq-data/mainbroker/kr-store/data read)
>>>        at
>>> org 
>>> .apache 
>>> .activemq.util.JMSExceptionSupport.create(JMSExceptionSupport.java: 
>>> 49)
>>>        at
>>> org 
>>> .apache 
>>> .activemq.ActiveMQConnection.syncSendPacket(ActiveMQConnection.java: 
>>> 1178)
>>>        at
>>> org.apache.activemq.ActiveMQSession.send(ActiveMQSession.java:1640)
>>>        at
>>> org 
>>> .apache 
>>> .activemq.ActiveMQMessageProducer.send(ActiveMQMessageProducer.java: 
>>> 226)
>>>        at
>>> org 
>>> .apache 
>>> .activemq 
>>> .ActiveMQMessageProducerSupport 
>>> .send(ActiveMQMessageProducerSupport.java:240)
>>>        at com.akamai.edgejava.tests.JmsTest.doGet(JmsTest.java:142)
>>> __NOTE__ This is where I do send().
>>>        ...etc...
>>> Caused by: java.security.AccessControlException: access denied
>>> (java.io.FilePermission activemq-data/mainbroker/kr-store/data read)
>>>        at
>>> java 
>>> .security 
>>> .AccessControlContext.checkPermission(AccessControlContext.java:323)
>>>        at
>>> java 
>>> .security.AccessController.checkPermission(AccessController.java:546)
>>>        at
>>> java.lang.SecurityManager.checkPermission(SecurityManager.java:532)
>>>        at java.lang.SecurityManager.checkRead(SecurityManager.java: 
>>> 871)
>>>        at java.io.File.list(File.java:971)
>>>        at java.io.File.listFiles(File.java:1090)
>>>        at
>>> org 
>>> .apache 
>>> .activemq 
>>> .kaha.impl.data.DataManagerImpl.<init>(DataManagerImpl.java:70)
>>>        at
>>> org 
>>> .apache.activemq.kaha.impl.KahaStore.getDataManager(KahaStore.java: 
>>> 358)
>>>        at
>>> org 
>>> .apache.activemq.kaha.impl.KahaStore.getMapContainer(KahaStore.java: 
>>> 221)
>>>        at
>>> org 
>>> .apache 
>>> .activemq 
>>> .store 
>>> .kahadaptor 
>>> .KahaReferenceStoreAdapter 
>>> .getMapReferenceContainer(KahaReferenceStoreAdapter.java:198)
>>>        at
>>> org 
>>> .apache 
>>> .activemq 
>>> .store 
>>> .kahadaptor 
>>> .KahaReferenceStoreAdapter 
>>> .createTopicReferenceStore(KahaReferenceStoreAdapter.java:165)
>>>        at
>>> org 
>>> .apache 
>>> .activemq 
>>> .store 
>>> .amq 
>>> .AMQPersistenceAdapter 
>>> .createTopicMessageStore(AMQPersistenceAdapter.java:414)
>>>        at
>>> org 
>>> .apache 
>>> .activemq 
>>> .broker 
>>> .region 
>>> .DestinationFactoryImpl 
>>> .createDestination(DestinationFactoryImpl.java:114)
>>>        at
>>> org 
>>> .apache 
>>> .activemq 
>>> .broker.region.AbstractRegion.createDestination(AbstractRegion.java: 
>>> 399)
>>>        at
>>> org 
>>> .apache 
>>> .activemq 
>>> .broker 
>>> .jmx.ManagedTopicRegion.createDestination(ManagedTopicRegion.java:56)
>>>        at
>>> org 
>>> .apache 
>>> .activemq 
>>> .broker.region.AbstractRegion.addDestination(AbstractRegion.java:116)
>>>        at
>>> org 
>>> .apache 
>>> .activemq 
>>> .broker.region.RegionBroker.addDestination(RegionBroker.java:259)
>>>        at
>>> org 
>>> .apache.activemq.broker.region.RegionBroker.send(RegionBroker.java: 
>>> 382)
>>>        at
>>> org 
>>> .apache 
>>> .activemq.broker.TransactionBroker.send(TransactionBroker.java:224)
>>>        at
>>> org.apache.activemq.broker.BrokerFilter.send(BrokerFilter.java:125)
>>>        at
>>> org 
>>> .apache 
>>> .activemq 
>>> .broker 
>>> .CompositeDestinationBroker.send(CompositeDestinationBroker.java:95)
>>>        at
>>> org 
>>> .apache 
>>> .activemq.broker.MutableBrokerFilter.send(MutableBrokerFilter.java: 
>>> 135)
>>>        at
>>> org 
>>> .apache 
>>> .activemq 
>>> .broker.TransportConnection.processMessage(TransportConnection.java: 
>>> 434)
>>> ...etc...
>>>
>>> It's trying to read "activemq-data/mainbroker/kr-store/data", which  
>>> is not
>>> allowed for reasons I won't go into here.  Why is it trying to do  
>>> this
>>> Kaha stuff, if I want memory persistence only?  Is there a way to  
>>> disable
>>> this?
>>>
>>> Thank you so much.
>>>
>>
>> -- 
>> View this message in context:
>> http://www.nabble.com/completely-disabling-Kaha-Store-tp16575091s2354p16576404.html
>> Sent from the ActiveMQ - User mailing list archive at Nabble.com.
>>
> 
> 
> 
> cheers,
> 
> Rob
> 
> http://open.iona.com/ -Enterprise Open Integration
> http://rajdavies.blogspot.com/
> 
> 
> 
> 
> 

-- 
View this message in context: http://www.nabble.com/completely-disabling-Kaha-Store-tp16575091s2354p16589562.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.


Re: completely disabling Kaha Store

Posted by Rob Davies <ra...@gmail.com>.
Unfortunately you need to set any persistence parameters before adding  
a connector ...



On 9 Apr 2008, at 00:44, yg_cvg wrote:

>
> Oddly enough, doing
>
>     m_broker = BrokerFactory.createBroker("broker:()? 
> persistent=false");
>
> instead of the first line below fixed the problem.  Also, a bunch of
> warnings about JMX (which I also explicitly tried to disable before)  
> went
> away.  I'm not really sure why it fixed it, but it did. Based on the  
> logging
> before the fix, it looked like it was trying to do some Kaha stuff  
> BEFORE
> the setPersistent(false) line executes, so maybe that enables  
> certain Kaha
> stuff to keep happening even after that line, though I'm still not  
> sure why.
>
> Any insight would still be appreciated, but the above seems to fix the
> problem.
>
>
> yg_cvg wrote:
>>
>> I am embedding an ActiveMQ broker directly inside an app (long  
>> story).  I
>> am doing so explicitly with Java code (i.e., "broker = new
>> BrokerService();", etc.).  I would like to completely avoid any  
>> writing of
>> files when performing normal JMS tasks, such as sending and receiving
>> messages (again, long story... access control issues).  [This may  
>> change
>> later, but for now, I am trying to avoid disk use.  Persistence is  
>> not a
>> concern.]  I do this to create/start the broker:
>>
>>        m_broker = new BrokerService();
>>        m_broker.setBrokerName(S_STR_BROKER_NAME);
>>        m_broker.addConnector("vm://" + S_STR_BROKER_NAME);
>>        m_broker.setUseJmx(false);
>>        m_broker.setPersistent(false);
>>        m_broker.setPersistenceAdapter(null);
>>        m_broker.start();
>>
>> However, when I start the broker, I see the following log output:
>>
>> INFO [main]: ActiveMQ 5.0.0 JMS Message Broker (mainbroker) is  
>> starting
>> INFO [main]: For help or more information please see:
>> http://activemq.apache.org/
>> INFO [main]: AMQStore starting using directory: activemq-data/ 
>> mainbroker
>> INFO [main]: Kaha Store using data directory
>> activemq-data/mainbroker/kr-store/state
>> INFO [main]: Active data files: []
>> WARN [main]: The ReferenceStore is not valid - recovering ...
>> INFO [main]: Kaha Store successfully deleted data directory
>> activemq-data/mainbroker/kr-store/data
>> INFO [main]: Journal Recovery Started from: DataManager:(data-)
>> INFO [main]: Recovered 0 operations from redo log in 0.015 seconds.
>> INFO [main]: Finished recovering the ReferenceStore
>> INFO [main]: Using Persistence Adapter: MemoryPersistenceAdapter
>> INFO [main]: Kaha Store using data directory
>> activemq-data/mainbroker/kr-store/data
>> INFO [main]: Connector vm://mainbroker Started
>> INFO [main]: ActiveMQ JMS Message Broker (mainbroker,
>> ID:yurik2.engr.akamai.com-54085-1207691353487-0:0) started
>>
>> So, on the one hand, it is using MemoryPersistenceAdapter (as I  
>> want, I
>> think), but also it's initializing some Kaha stuff (and also Journal
>> stuff... not sure if that's separate or the same thing) -- which I'd
>> rather it not do, if possible.
>>
>> Later, when the in-VM client (which, unlike the above broker
>> initialization code, is constrained by rather strict security rules  
>> about
>> file writing) does a JMS send(), I get a security exception:
>>
>> javax.jms.JMSException: access denied (java.io.FilePermission
>> activemq-data/mainbroker/kr-store/data read)
>>        at
>> org 
>> .apache 
>> .activemq.util.JMSExceptionSupport.create(JMSExceptionSupport.java: 
>> 49)
>>        at
>> org 
>> .apache 
>> .activemq.ActiveMQConnection.syncSendPacket(ActiveMQConnection.java: 
>> 1178)
>>        at
>> org.apache.activemq.ActiveMQSession.send(ActiveMQSession.java:1640)
>>        at
>> org 
>> .apache 
>> .activemq.ActiveMQMessageProducer.send(ActiveMQMessageProducer.java: 
>> 226)
>>        at
>> org 
>> .apache 
>> .activemq 
>> .ActiveMQMessageProducerSupport 
>> .send(ActiveMQMessageProducerSupport.java:240)
>>        at com.akamai.edgejava.tests.JmsTest.doGet(JmsTest.java:142)
>> __NOTE__ This is where I do send().
>>        ...etc...
>> Caused by: java.security.AccessControlException: access denied
>> (java.io.FilePermission activemq-data/mainbroker/kr-store/data read)
>>        at
>> java 
>> .security 
>> .AccessControlContext.checkPermission(AccessControlContext.java:323)
>>        at
>> java 
>> .security.AccessController.checkPermission(AccessController.java:546)
>>        at
>> java.lang.SecurityManager.checkPermission(SecurityManager.java:532)
>>        at java.lang.SecurityManager.checkRead(SecurityManager.java: 
>> 871)
>>        at java.io.File.list(File.java:971)
>>        at java.io.File.listFiles(File.java:1090)
>>        at
>> org 
>> .apache 
>> .activemq 
>> .kaha.impl.data.DataManagerImpl.<init>(DataManagerImpl.java:70)
>>        at
>> org 
>> .apache.activemq.kaha.impl.KahaStore.getDataManager(KahaStore.java: 
>> 358)
>>        at
>> org 
>> .apache.activemq.kaha.impl.KahaStore.getMapContainer(KahaStore.java: 
>> 221)
>>        at
>> org 
>> .apache 
>> .activemq 
>> .store 
>> .kahadaptor 
>> .KahaReferenceStoreAdapter 
>> .getMapReferenceContainer(KahaReferenceStoreAdapter.java:198)
>>        at
>> org 
>> .apache 
>> .activemq 
>> .store 
>> .kahadaptor 
>> .KahaReferenceStoreAdapter 
>> .createTopicReferenceStore(KahaReferenceStoreAdapter.java:165)
>>        at
>> org 
>> .apache 
>> .activemq 
>> .store 
>> .amq 
>> .AMQPersistenceAdapter 
>> .createTopicMessageStore(AMQPersistenceAdapter.java:414)
>>        at
>> org 
>> .apache 
>> .activemq 
>> .broker 
>> .region 
>> .DestinationFactoryImpl 
>> .createDestination(DestinationFactoryImpl.java:114)
>>        at
>> org 
>> .apache 
>> .activemq 
>> .broker.region.AbstractRegion.createDestination(AbstractRegion.java: 
>> 399)
>>        at
>> org 
>> .apache 
>> .activemq 
>> .broker 
>> .jmx.ManagedTopicRegion.createDestination(ManagedTopicRegion.java:56)
>>        at
>> org 
>> .apache 
>> .activemq 
>> .broker.region.AbstractRegion.addDestination(AbstractRegion.java:116)
>>        at
>> org 
>> .apache 
>> .activemq 
>> .broker.region.RegionBroker.addDestination(RegionBroker.java:259)
>>        at
>> org 
>> .apache.activemq.broker.region.RegionBroker.send(RegionBroker.java: 
>> 382)
>>        at
>> org 
>> .apache 
>> .activemq.broker.TransactionBroker.send(TransactionBroker.java:224)
>>        at
>> org.apache.activemq.broker.BrokerFilter.send(BrokerFilter.java:125)
>>        at
>> org 
>> .apache 
>> .activemq 
>> .broker 
>> .CompositeDestinationBroker.send(CompositeDestinationBroker.java:95)
>>        at
>> org 
>> .apache 
>> .activemq.broker.MutableBrokerFilter.send(MutableBrokerFilter.java: 
>> 135)
>>        at
>> org 
>> .apache 
>> .activemq 
>> .broker.TransportConnection.processMessage(TransportConnection.java: 
>> 434)
>> ...etc...
>>
>> It's trying to read "activemq-data/mainbroker/kr-store/data", which  
>> is not
>> allowed for reasons I won't go into here.  Why is it trying to do  
>> this
>> Kaha stuff, if I want memory persistence only?  Is there a way to  
>> disable
>> this?
>>
>> Thank you so much.
>>
>
> -- 
> View this message in context: http://www.nabble.com/completely-disabling-Kaha-Store-tp16575091s2354p16576404.html
> Sent from the ActiveMQ - User mailing list archive at Nabble.com.
>



cheers,

Rob

http://open.iona.com/ -Enterprise Open Integration
http://rajdavies.blogspot.com/




Re: completely disabling Kaha Store

Posted by yg_cvg <yu...@ugcs.caltech.edu>.
Oddly enough, doing

     m_broker = BrokerFactory.createBroker("broker:()?persistent=false");

instead of the first line below fixed the problem.  Also, a bunch of
warnings about JMX (which I also explicitly tried to disable before) went
away.  I'm not really sure why it fixed it, but it did. Based on the logging
before the fix, it looked like it was trying to do some Kaha stuff BEFORE
the setPersistent(false) line executes, so maybe that enables certain Kaha
stuff to keep happening even after that line, though I'm still not sure why.

Any insight would still be appreciated, but the above seems to fix the
problem.


yg_cvg wrote:
> 
> I am embedding an ActiveMQ broker directly inside an app (long story).  I
> am doing so explicitly with Java code (i.e., "broker = new
> BrokerService();", etc.).  I would like to completely avoid any writing of
> files when performing normal JMS tasks, such as sending and receiving
> messages (again, long story... access control issues).  [This may change
> later, but for now, I am trying to avoid disk use.  Persistence is not a
> concern.]  I do this to create/start the broker:
> 
>         m_broker = new BrokerService();
>         m_broker.setBrokerName(S_STR_BROKER_NAME);
>         m_broker.addConnector("vm://" + S_STR_BROKER_NAME);
>         m_broker.setUseJmx(false);
>         m_broker.setPersistent(false);
>         m_broker.setPersistenceAdapter(null);
>         m_broker.start();
> 
> However, when I start the broker, I see the following log output:
> 
> INFO [main]: ActiveMQ 5.0.0 JMS Message Broker (mainbroker) is starting
> INFO [main]: For help or more information please see:
> http://activemq.apache.org/
> INFO [main]: AMQStore starting using directory: activemq-data/mainbroker
> INFO [main]: Kaha Store using data directory
> activemq-data/mainbroker/kr-store/state
> INFO [main]: Active data files: []
> WARN [main]: The ReferenceStore is not valid - recovering ...
> INFO [main]: Kaha Store successfully deleted data directory
> activemq-data/mainbroker/kr-store/data
> INFO [main]: Journal Recovery Started from: DataManager:(data-)
> INFO [main]: Recovered 0 operations from redo log in 0.015 seconds.
> INFO [main]: Finished recovering the ReferenceStore
> INFO [main]: Using Persistence Adapter: MemoryPersistenceAdapter
> INFO [main]: Kaha Store using data directory
> activemq-data/mainbroker/kr-store/data
> INFO [main]: Connector vm://mainbroker Started
> INFO [main]: ActiveMQ JMS Message Broker (mainbroker,
> ID:yurik2.engr.akamai.com-54085-1207691353487-0:0) started
> 
> So, on the one hand, it is using MemoryPersistenceAdapter (as I want, I
> think), but also it's initializing some Kaha stuff (and also Journal
> stuff... not sure if that's separate or the same thing) -- which I'd
> rather it not do, if possible.
> 
> Later, when the in-VM client (which, unlike the above broker
> initialization code, is constrained by rather strict security rules about
> file writing) does a JMS send(), I get a security exception:
> 
> javax.jms.JMSException: access denied (java.io.FilePermission
> activemq-data/mainbroker/kr-store/data read)
>         at
> org.apache.activemq.util.JMSExceptionSupport.create(JMSExceptionSupport.java:49)
>         at
> org.apache.activemq.ActiveMQConnection.syncSendPacket(ActiveMQConnection.java:1178)
>         at
> org.apache.activemq.ActiveMQSession.send(ActiveMQSession.java:1640)
>         at
> org.apache.activemq.ActiveMQMessageProducer.send(ActiveMQMessageProducer.java:226)
>         at
> org.apache.activemq.ActiveMQMessageProducerSupport.send(ActiveMQMessageProducerSupport.java:240)
>         at com.akamai.edgejava.tests.JmsTest.doGet(JmsTest.java:142)
> __NOTE__ This is where I do send().
>         ...etc...
> Caused by: java.security.AccessControlException: access denied
> (java.io.FilePermission activemq-data/mainbroker/kr-store/data read)
>         at
> java.security.AccessControlContext.checkPermission(AccessControlContext.java:323)
>         at
> java.security.AccessController.checkPermission(AccessController.java:546)
>         at
> java.lang.SecurityManager.checkPermission(SecurityManager.java:532)
>         at java.lang.SecurityManager.checkRead(SecurityManager.java:871)
>         at java.io.File.list(File.java:971)
>         at java.io.File.listFiles(File.java:1090)
>         at
> org.apache.activemq.kaha.impl.data.DataManagerImpl.<init>(DataManagerImpl.java:70)
>         at
> org.apache.activemq.kaha.impl.KahaStore.getDataManager(KahaStore.java:358)
>         at
> org.apache.activemq.kaha.impl.KahaStore.getMapContainer(KahaStore.java:221)
>         at
> org.apache.activemq.store.kahadaptor.KahaReferenceStoreAdapter.getMapReferenceContainer(KahaReferenceStoreAdapter.java:198)
>         at
> org.apache.activemq.store.kahadaptor.KahaReferenceStoreAdapter.createTopicReferenceStore(KahaReferenceStoreAdapter.java:165)
>         at
> org.apache.activemq.store.amq.AMQPersistenceAdapter.createTopicMessageStore(AMQPersistenceAdapter.java:414)
>         at
> org.apache.activemq.broker.region.DestinationFactoryImpl.createDestination(DestinationFactoryImpl.java:114)
>         at
> org.apache.activemq.broker.region.AbstractRegion.createDestination(AbstractRegion.java:399)
>         at
> org.apache.activemq.broker.jmx.ManagedTopicRegion.createDestination(ManagedTopicRegion.java:56)
>         at
> org.apache.activemq.broker.region.AbstractRegion.addDestination(AbstractRegion.java:116)
>         at
> org.apache.activemq.broker.region.RegionBroker.addDestination(RegionBroker.java:259)
>         at
> org.apache.activemq.broker.region.RegionBroker.send(RegionBroker.java:382)
>         at
> org.apache.activemq.broker.TransactionBroker.send(TransactionBroker.java:224)
>         at
> org.apache.activemq.broker.BrokerFilter.send(BrokerFilter.java:125)
>         at
> org.apache.activemq.broker.CompositeDestinationBroker.send(CompositeDestinationBroker.java:95)
>         at
> org.apache.activemq.broker.MutableBrokerFilter.send(MutableBrokerFilter.java:135)
>         at
> org.apache.activemq.broker.TransportConnection.processMessage(TransportConnection.java:434)
> ...etc...
> 
> It's trying to read "activemq-data/mainbroker/kr-store/data", which is not
> allowed for reasons I won't go into here.  Why is it trying to do this
> Kaha stuff, if I want memory persistence only?  Is there a way to disable
> this?
> 
> Thank you so much.
> 

-- 
View this message in context: http://www.nabble.com/completely-disabling-Kaha-Store-tp16575091s2354p16576404.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.