5
मैं कोर हॉर्नैटक क्लाइंट में लगातार कतार बनाना चाहता हूं। समस्या यह है कि जब मैं सर्वर को कतार रोकता हूं और डेटा नष्ट हो जाएगा। कतार कैसे बनाये? मेरे कोड है:HornetQ 2.2.5 कोर क्लाइंट में कतार कैसे बनायी जाए?
Configuration configuration = new ConfigurationImpl();
configuration.setPersistenceEnabled(true); <<<< Make this true
UnsatisfiedLinkError शायद इसलिए है क्योंकि आप AIO का चयन करें और LD_LIBRARY_PATH पर देशी पुस्तकालय नहीं था है:
import java.util.Date;
import org.hornetq.api.core.TransportConfiguration;
import org.hornetq.api.core.client.ClientConsumer;
import org.hornetq.api.core.client.ClientMessage;
import org.hornetq.api.core.client.ClientProducer;
import org.hornetq.api.core.client.ClientSession;
import org.hornetq.api.core.client.ClientSessionFactory;
import org.hornetq.api.core.client.HornetQClient;
import org.hornetq.api.core.client.ServerLocator;
import org.hornetq.core.config.Configuration;
import org.hornetq.core.config.impl.ConfigurationImpl;
import org.hornetq.core.remoting.impl.invm.InVMAcceptorFactory;
import org.hornetq.core.remoting.impl.invm.InVMConnectorFactory;
import org.hornetq.core.server.HornetQServer;
import org.hornetq.core.server.HornetQServers;
public class EmbeddedExample
{
public static void main(final String[] args)
{
try
{
// Step 1. Create the Configuration, and set the properties accordingly
Configuration configuration = new ConfigurationImpl();
configuration.setPersistenceEnabled(false);
configuration.setSecurityEnabled(false);
configuration.getAcceptorConfigurations().add(new TransportConfiguration(InVMAcceptorFactory.class.getName()));
// Step 2. Create and start the server
HornetQServer server = HornetQServers.newHornetQServer(configuration);
server.start();
// Step 3. As we are not using a JNDI environment we instantiate the objects directly
ServerLocator serverLocator = HornetQClient.createServerLocatorWithoutHA(new TransportConfiguration(InVMConnectorFactory.class.getName()));
ClientSessionFactory sf = serverLocator.createSessionFactory();
// Step 4. Create a core queue
ClientSession coreSession = sf.createSession(false, false, false);
final String queueName = "queue.exampleQueue";
coreSession.createQueue(queueName, queueName, true);
coreSession.close();
ClientSession session = null;
try
{
// Step 5. Create the session, and producer
session = sf.createSession();
ClientProducer producer = session.createProducer(queueName);
// Step 6. Create and send a message
ClientMessage message = session.createMessage(true);
final String propName = "myprop";
message.putStringProperty(propName, "Hello sent at " + new Date());
System.out.println("Producer:");
System.out.println("StartDate: "+new Date());
for (int i = 0; i < 100000; i++)
{
message = session.createMessage(true); // move it
message.putStringProperty(propName, "Message: " + i);
producer.send(message);
}
System.out.println("EndDate: "+new Date());
// Step 7. Create the message consumer and start the connection
ClientConsumer messageConsumer = session.createConsumer(queueName);
session.start();
// Step 8. Receive the message.
System.out.println("Consumer:");
System.out.println("StartDate: "+new Date());
//for (int i = 0; i <= 100000; i++)
int i=0;
while(true)
{
i++;
if(i == 10000){
i=0;
session.start();
System.out.println("EndDate: "+new Date());
}
ClientMessage messageReceived = messageConsumer.receive(5000);
if (messageReceived!=null) messageReceived.acknowledge();
//System.out.println(messageReceived.getStringProperty(propName));
}
}
finally
{
// Step 9. Be sure to close our resources!
if (sf != null)
{
sf.close();
}
// Step 10. Stop the server
server.stop();
}
}
catch (Exception e)
{
e.printStackTrace();
System.exit(-1);
}
}
}
यहां कोड पेस्ट क्यों नहीं करें? - और क्या config.setPersistenceEnabled (false) में कतार के साथ कुछ नहीं किया जा रहा है? (अंधेरे में बस एक अनुमान) – stakx
मैंने config.setPersistenceEnabled (true) के साथ प्रयास किया है; लेकिन यह मुझे "java.lang.UnsisfisfiedLinkError" अपवाद देता है। –
क्या आप यहां कोड जोड़कर अपना मूल प्रश्न संपादित कर सकते हैं? भविष्य के संदर्भों के लिए यह बहुत बेहतर होगा .. क्योंकि पेस्ट की गारंटी नहीं है। आपके द्वारा बनाए गए जीबी हमेशा के लिए जीते रहेंगे। –