[JBoss Messaging] New message: "Re: Problem with cluster failover."
by Krystian Siuda
User development,
A new message was posted in the thread "Problem with cluster failover.":
http://community.jboss.org/message/518899#518899
Author : Krystian Siuda
Profile : http://community.jboss.org/people/ksiuda
Message:
--------------------------------------------------------------
Hi,
When an Exception is thrown dealing with Connection/Session/Producer(in the "sender" thread)/Consumer(in the "receiver" thread) the connection is restarted compleatly. The Exception you qoted ("Maximum number of failover attempts exceeded.") has been thrown only by the "receiver" thread, I think that the "prodcuer" was allready blocked at that time (I can check it to be sure if it's revelant).
This is how I handle Exceptions in "sender" ("receiver" is very simmilar, this is very dirty code..sorry):
public static void sendWrap(ConnectionFactory cf, Destination target) {
for(;;) { // just loop forever
try {
Thread.sleep(1000);
send(cf, target);
} catch (Exception e) {
if(e instanceof InterruptedException) {
LOGGER.info("exiting sender", e);
return;
}
else {
LOGGER.warn("send got exception", e);
}
}
}
}
and the "send" method:
public static void send(ConnectionFactory cf, Destination target) throws Exception {
Connection connection = null;
try {
connection = cf.createConnection("ecm-user", "ecm-user");
Session session = connection.createSession(false, Session.CLIENT_ACKNOWLEDGE);
MessageProducer producer = session.createProducer(target);
connection.start();
LOGGER.info("Sending");
for(;;) {
// some uniq id generation was here TextMessage message = session.createTextMessage(id + "~" + new Date() + "~" + GarbageGenerator.getGarbage());
message.setJMSDeliveryMode(DeliveryMode.PERSISTENT);
producer.send(message);
if(LOGGER.isTraceEnabled()) {
LOGGER.trace("Sent message no: " + id + " id: " + message.getJMSMessageID() + " : " + message.getText());
}
else {
LOGGER.info("Sent message no: " + id + " id: " + message.getJMSMessageID());
}
Thread.sleep(500);
if(Thread.interrupted()) {
LOGGER.info("sender interrupted");
throw new InterruptedException();
}
}
}
finally {
if(connection != null) {
connection.close();
}
}
}
The "receiver" and "sender" threads are using two separate ConnectionFactories and Destinations. Those are taken from two separate JNDI lookups. That's because I needed a tool that can send&receive messages from different servers. This is the initialization code:
Properties senderProps = new Properties();
senderProps.put(Context.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory");
senderProps.put(Context.URL_PKG_PREFIXES, "org.jboss.naming:org.jnp.interfaces");
senderProps.put(Context.PROVIDER_URL, senderJNP);
Properties receiverProps = new Properties();
receiverProps.put(Context.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory");
receiverProps.put(Context.URL_PKG_PREFIXES, "org.jboss.naming:org.jnp.interfaces");
receiverProps.put(Context.PROVIDER_URL, receiverJNP);
// Step 1. Create an initial context to perform the JNDI lookup.
senderInitialContext = new InitialContext(senderProps);
receiverInitialContext = new InitialContext(receiverProps);
// Step 3. Perform a lookup on the Connection Factory
final ConnectionFactory senderConnectionFactory = (ConnectionFactory)senderInitialContext.lookup(senderCF);
final ConnectionFactory receiverConnectionFactory = (ConnectionFactory)senderInitialContext.lookup(receiverCF);
// Step 2. Perfom a lookup on the queue
final Destination senderTarget = (Destination)senderInitialContext.lookup(senderDest);
final Destination receiverTarget = (Destination)senderInitialContext.lookup(receiverDest);
Same situation takes place when I'm using HA-JNDI for the lookup (port 1100).
Krystian.
--------------------------------------------------------------
To reply to this message visit the message page: http://community.jboss.org/message/518899#518899
14 years, 3 months
[Beginner's Corner] New message: "JBoss won't start on run.bat"
by Riccardo Blumenthal
User development,
A new message was posted in the thread "JBoss won't start on run.bat":
http://community.jboss.org/message/518895#518895
Author : Riccardo Blumenthal
Profile : http://community.jboss.org/people/neron17
Message:
--------------------------------------------------------------
Hei community I want to get my JBoss 5.1.0 get started on Windows but somehow it won't work anymore. I already had it running in a shell and then integrated it into Eclipse. It's still running in Eclipse though but I cannot run it outside in a shell anymore via the run.bat. The output looks as follows: ===== C:\Programme\JBoss\jboss-5.1.0.GA\bin>run Calling C:\Programme\JBoss\jboss-5.1.0.GA\bin\run.conf.bat C:\Programme\JBoss\jboss-5.1.0.GA\bin>run ===== I have no idea why nothing is happening. Also redownloaded JBoss and installed it again..still the same. Anyone has an idea? Rico
--------------------------------------------------------------
To reply to this message visit the message page: http://community.jboss.org/message/518895#518895
14 years, 3 months