2
ActiveMQ 5.5.1을 실행 중이고 저널링 된 JDBC 지속성을 구성하는 데 문제가 있습니다. 그래서 명확하게 두 개의 소스 중 하나는 동기화되지, 내가 the published schema를 검토 한저널링 된 MySQL JDBC 지속성으로 ActiveMQ 설정
./activemq console xbean:my-activemq.xml
Java Runtime: Sun Microsystems Inc. 1.6.0_29 /home/aj/jdk1.6.0_29/jre
Heap sizes: current=253440k free=250641k max=253440k
JVM args: -Xms256M -Xmx256M -Dorg.apache.activemq.UseDedicatedTaskRunner=true -Djava.util.logging.config.file=logging.properties -Dcom.sun.management.jmxremote -Dactivemq.classpath=/home/aj/apache-activemq-5.5.1/conf; -Dactivemq.home=/home/aj/apache-activemq-5.5.1 -Dactivemq.base=/home/aj/apache-activemq-5.5.1
ACTIVEMQ_HOME: /home/aj/apache-activemq-5.5.1
ACTIVEMQ_BASE: /home/aj/apache-activemq-5.5.1
Loading message broker from: xbean:my-activemq.xml
INFO | Refreshing [email protected]: startup date [Thu Dec 22 07:49:17 EST 2011]; root of context hierarchy
ERROR: java.lang.RuntimeException: Failed to execute start task.
Reason: org.springframework.beans.factory.BeanCreationException:
Error creating bean with name 'org.apache.activemq.xbean.XBeanBrokerService#0' defined in class path resource [my-activemq.xml]:
Initialization of bean failed; nested exception is org.springframework.beans.ConversionNotSupportedException:
Failed to convert property value of type
'org.apache.activemq.store.journal.JournalPersistenceAdapter' to required type
'org.apache.activemq.store.PersistenceAdapterFactory' for property 'persistenceFactory';
nested exception is java.lang.IllegalStateException: Cannot convert value of type
[org.apache.activemq.store.journal.JournalPersistenceAdapter] to required type
[org.apache.activemq.store.PersistenceAdapterFactory] for property 'persistenceFactory': no matching editors or conversion strategy found
하지만,이 예제는 완전히 다르게 나타납니다 the example here를 사용하여, 나는 다음과 같은 XML 유효성 검사 오류가 발생합니다. MySQL과 함께 Journaled JDBC를 사용하여 작업 지속성 구성을 공유 할 수 있습니까?
여기 내 구성 관련 부분입니다 :
<bean id="mysql-ds" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost/activemq?relaxAutoCommit=true"/>
<property name="username" value="activemq"/>
<property name="password" value="activemq"/>
<property name="maxActive" value="200"/>
<property name="poolPreparedStatements" value="true"/>
</bean>
<persistenceFactory>
<journaledJDBC journalLogFiles="5" dataDirectory="${activemq.base}/activemq-data" dataSource="#mysql-ds"/>
</persistenceFactory>
감사합니다. 시도해보십시오. 페일 오버는 확실히 걱정이지만, AMQ 사이트에서이 문제에 관해 읽으면서, JDBC w/out 저널링이 훨씬 느린 것 같습니다. 당신의 트래픽은 무엇입니까 : 꾸준하거나 간헐적입니까? 최대 및 평균 볼륨은 무엇입니까? –
Google 시스템은 아직 생산 중이 아니지만 대량의 메시지는 기대하지 않습니다. 피크에서 우리는 1000 개의 메시지/초를 예상하고 우리의 성능 테스트는 그러한 트래픽으로 40 %의 CPU 부하를 등록하지 않았습니다. 우리에게있어 가장 중요한 것은 메시지 신뢰성/정보 손실없이 메시지를주고받을 수 있다는 것입니다. – Paul
나는 그것이 모든 관점의 문제라고 생각한다. 나에게 1000/초는 꽤 상당하다. 그러나 그것이 지속적인 볼륨이 아니라면, 나는 당신이 당신의 평균이 될 것으로 기대하는 것에 흥미가있을 것입니까? –