Beruflich Dokumente
Kultur Dokumente
Queue
Topic
ConnectionFactory
QueueSender/MessageProducer
QueueReceiver/MessageConsumer/MDB
QueueBrowser
Message Expiry.
QueueSender qsender
qsender.setTimeToLive(1000);
Broker persistence
<persistenceAdapter>
<kahaDB directory="${data}/kahadb"/>
</persistenceAdapter>
OR
<persistenceAdapter>
<jdbcPersistenceAdapter dataSource="#oracle-ds">
</jdbcPersistenceAdapter>
</persistenceAdapter>
~~
<bean id="oracle-ds" class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName"
value="oracle.jdbc.driver.OracleDriver" />
<property name="url"
value="jdbc:oracle:thin:@XXXXXXXX:1521:orcl" />
<property name="username" value="XXXX" />
<property name="password" value="XXXX" />
<property name="poolPreparedStatements" value="true" />
</bean>
Cursors
There are two additional types of cursor that could be used: VM Cursor and File based Cursor
VM Cursor
<destinationPolicy>
<policyMap>
<policyEntries>
<policyEntry queue="org.apache.>">
<deadLetterStrategy>
<individualDeadLetterStrategy queuePrefix="Test.DLQ."/>
</deadLetterStrategy>
<pendingQueuePolicy>
<vmQueueCursor />
</pendingQueuePolicy>
</policyEntry>
</policyEntries>
</policyMap>
</destinationPolicy>
<destinationPolicy>
<policyMap>
<policyEntries>
<policyEntry queue="org.apache.>">
<deadLetterStrategy>
<individualDeadLetterStrategy queuePrefix="Test.DLQ."/>
</deadLetterStrategy>
<pendingQueuePolicy>
<fileQueueCursor />
</pendingQueuePolicy>
</policyEntry>
</policyEntries>
</policyMap>
</destinationPolicy>
Message Selectors
Producer
Consumer
Master/Slave configuration
<persistenceAdapter>
<kahaDB directory="/sharedFileSystem/sharedBrokerData" />
<locker>
<shared-file-locker lockAcquireSleepInterval="10000" />
</locker>
</persistenceAdapter>
Static
Dynamic
Destination filtering
Wildcard
.
*
>
Description
Separates segments in a path name.
Matches any single segment in a path name.
Matches any number of segments in a path name.
Destination wildcard
PRICE.>
PRICE.STOCK.>
PRICE.STOCK.NASDAQ.*
PRICE.STOCK.*.IBM
What it matches
Any price for any product on any exchange.
Any price for a stock on any exchange.
Any stock price on NASDAQ.
Any IBM stock price on any exchange.
<networkConnectors>
<networkConnector name="linkToBrokerB"
uri="static:(tcp://localhost:61002)"
networkTTL="3">
<dynamicallyIncludedDestinations>
<queue physicalName="TRADE.STOCK.>"/>
<topic physicalName="PRICE.STOCK.>"/>
</dynamicallyIncludedDestinations>
</networkConnector>
</networkConnectors>
Failover
failover:(tcp://local:61616,tcp://remote:61616)
<mdb>
<resource-adapter-ref resource-adapter-name="activemq-rar.rar"/>
<bean-instance-pool-ref pool-name="mdb-strict-max-pool"/>
</mdb>
In MDB code:
@MessageDriven(
activationConfig={
@ActivationConfigProperty(propertyName="destinationType", propertyValue="javax.jms.Queue"),
@ActivationConfigProperty(propertyName="destination", propertyValue="HELLOWORLDMDBQueue")
}
)
@ResourceAdapter(value="activemq-rar.rar")
public class MyMDB implements MessageListener{
public void onMessage(Message message) {
TextMessage textMessage = (TextMessage) message;
try {
System.out.println("nnt Message has been Received by MDB : "+ textMessage.getText());
} catch (JMSException e) {
e.printStackTrace();
}
}
}