activemq-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Rob Davies <rajdav...@gmail.com>
Subject Re: completely disabling Kaha Store
Date Wed, 09 Apr 2008 06:18:11 GMT
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/




Mime
View raw message