Which version of ActiveMQ are you using? I just plugged your test case into
the trunk code and it worked fine.



On Tue, Jan 1, 2013 at 8:48 AM, gfshaikh <ghulam.sha...@taxware.com> wrote:

> Hi All
>
> I am trying to transfer a large file over ActiveMQ using JMS Streams - the
> transfer works fine however along with the file contents I also need to
> send
> the file name to the recipient stream - I am trying the following code but
> don't see the data appearing at the recipient end - saw several posts on
> the
> same topic but none of the solutions work. Would appreciate a quick
> response
> if someone has a working version of this scenario.
>
> Sender
> -------
> FileInputStream in = new FileInputStream("C:\\InputFile.txt");
>
>     String brokerURI = ActiveMQConnectionFactory.DEFAULT_BROKER_URL;
>     ActiveMQConnectionFactory connectionFactory = new
> ActiveMQConnectionFactory(
>       brokerURI);
>     ActiveMQConnection connection = (ActiveMQConnection) connectionFactory
>       .createConnection();
>     connection.start();
>     Session session = connection.createSession(false,
> Session.AUTO_ACKNOWLEDGE);
>     Queue destination = session.createQueue(QUEUE_NAME);
>     Map<String, Object> properties = new HashMap<String, Object>(1);
>     properties.put("testValue", "testValue");
>
>     OutputStream out =
>
>
> ((ActiveMQConnection)connectionFactory.createConnection()).createOutputStream(destination,
>         properties, ActiveMQMessage.DEFAULT_DELIVERY_MODE,
>         ActiveMQMessage.DEFAULT_PRIORITY,
> ActiveMQMessage.DEFAULT_TIME_TO_LIVE);
>
> byte[] buffer = new byte[1024];
>     while (true)
>     {
>       int bytesRead = in.read(buffer);
>       if (bytesRead == -1)
>       {
>         break;
>       }
>       out.write(buffer, 0, bytesRead);
>     }
>     out.flush();
>     out.close();
>
> Receiver
> ---------
> FileOutputStream out = new FileOutputStream(
>       "C:\\ReceivedFile.txt");
>
>     String brokerURI = ActiveMQConnectionFactory.DEFAULT_BROKER_URL;
>     ActiveMQConnectionFactory connectionFactory = new
> ActiveMQConnectionFactory(
>       brokerURI);
>     ActiveMQConnection connection = (ActiveMQConnection) connectionFactory
>       .createConnection();
>     connection.start();
>     Session session = connection.createSession(false,
> Session.AUTO_ACKNOWLEDGE);
>     // we want be be an exclusive consumer
>     String exclusiveQueueName = QUEUE_NAME + "?consumer.exclusive=true";
>     Queue destination = session.createQueue(exclusiveQueueName);
>     InputStream in = connection.createInputStream(destination);
>
>     ActiveMQInputStream aqInStream = (ActiveMQInputStream) in;
>     ActiveMQMessage mqMessage = aqInStream.receive();
>     System.out.println(mqMessage.getProperty("testValue"));
>     System.out.println(aqInStream.getJMSProperties());
>
>     // now write the file from ActiveMQ
>     byte[] buffer = new byte[1024];
>     while (true)
>     {
>       int bytesRead = in.read(buffer);
>       if (bytesRead == -1)
>       {
>         break;
>       }
>       out.write(buffer, 0, bytesRead);
>     }
>     out.close();
>
>
>
> --
> View this message in context:
> http://activemq.2283324.n4.nabble.com/ActiveMQ-Stream-Messaging-JMS-Properties-tp4661193.html
> Sent from the ActiveMQ - User mailing list archive at Nabble.com.
>



-- 
*Christian Posta*
http://www.christianposta.com/blog
twitter: @christianposta

Reply via email to