Vanilla Queue Creation - chronicle

This used to work with the chronicle queue v3. It does not create a queue in v4. What am I doing wrong? Thanks.
Chronicle chronicleSignal = ChronicleQueueBuilder.vanilla("somePath").build();
ExcerptAppender appender = chronicleSignal.createAppender();

The queue creation was hindered because it was in the same directory with an indexed one. It seems v4 doesn't like that.

Queue v4 should ignore any files it doesn't recognise the extension for .cq4 however Queue v3 didn't do this. You should make sure there is no other files places in the directories for Q v3

Related

iib 10 missing message on the local mq queue using mqoutput node

I'm newbie on IBM tool.
On my laptop, I have installed IIB v10 using a local MQ manager. I created 2 local queues on MQ: "Queue.In" and "Queue.Out".
I have a very simple scenario that I work on: I send a 'csv' file on the "Queue.In", get the message using 'MQInput node' transform the message into xml using 'mapping node', and then put the xml message to 'Queue.Out'.
Using the ‘flow exercicser’ I’m able to send my ‘csv’ file and I can see that the message get consumed and transformed to xml and send to “Queue.Out”
Problem: My xml message is successfully put in "Queue.Out", but disappear right after.
I want it to remain in the "Queue.Out".
I use “MQ explorer” to browse my queues.
Please advice.
I would always recommend using Rfhutil for Delivery and Subscription of messages onto/out of a queue. In Rfhutil you can also browse messages without taking them off the queue which can be useful.
I am unsure why the flow exerciser removes messages - this is a new feature in IIB10 so it might be that they wanted queues to be cleared after the flow execution has been completed to avoid clogging queues. I believe the point of the exerciser is to track the logic of the flows themselves not to get messages.
Hope this helps :)

OpenHFT Chronicle Queue Version 4 - nextSynchronous?

In version 3 of OpenHFT's Chronicle Queue there is an API call on ExcerptAppender (nextSynchronous(boolean)) to request that the contents of the queue be forced to be written to disk (fsync'd)when the next excerpt is finished. I don't see a similar call in version 4. Is it possible to achieve the same effect with version 4?
Not at the moment. If you need guarenteed writes we suggest acknowledged replication.
I suggest you add it as a github issue, however I can't say when this will be added.

Rename tibco queue by command line

I been looking in google without success.
I´m connected to tibco machine by console, and I would like to rename a queue name.
show queue
Give me all the details of the queue. I would like to rename it.
AFAIK, You can't rename queues.
To achieve the same as "renaming" a queue you'd need to:
disconnect consumers from the old queue
create the new queue
move any pending messages from the old queue to the new one
create a bridge from the old q. to the new q.
reconnect consumers to the new queue
delete bridge and old queue when no longer referenced by any producer.
if you are in your own dev environment, just delete the old queue and create the new one (assume you don't care losing pending messages in that case)

Do Request/Reply with camel-sjms without using temporary queues

Currently, for doing request/reply with camel-sjms, I'm using the exchangePattern=InOut URI parameter like this:
from("sjms:queue:my.queue?exchangePattern=InOut")
.setBody(constant("This is an example message"));
And when looking at the message headers, I see it creates a temporary queue through the JMSDestination header to do the exchange.
The problem with temporary queues is that, when doing a lot of request/reply, it can be a big performance hit, so instead, based on previous experience, on plain JMS, I've used instead a message to a normal queue, but I can achieve request/reply through JMSCorrelationID message filtering.
So, how can do a request/reply in camel-sjms but with normal queues instead of temporary queue creation?
Thanks
Read the documentation of camel-sjms and you can find the option namedReplyTo where you can specify the reply-to queue name to use.
http://camel.apache.org/sjms

How to monitor an existing queue from WebSphere MQ?

I have a .NET application that needs to monitor a queue in WebSphere MQ. I need to react to each message without impacting the current process. The client application can't explicity send me the same message.
Can I read a message without removing it from the queue? Can I be notified for each message? Can I configure the MQ to duplicate the current queue?
Is there another solution?
If you are using WMQ v7 then you can do this without any impact to the existing applications other than to change the queue name for one of them.
Currently the message producer and consumer use the same queue. In v7 of WMQ you can create an alias over a topic so that the message producer thinks it's a queue. Then you can create two administrative, durable subscriptions such that one points to the existing input queue and another points to a queue dedicated to your new application.
Of course you are already using v7 since v6 goes out of service next year, right? You can upgrade the QMgr to v7 which enables this behavior while still using v6 client code for the apps.
If you are using WMQ v6 then the MirrorQ program might work for you.
You could change from using a queue to a durable topic and have both your reader and your browser subscribe to it.
You could also create a distribution list on your queue manager. A distribution list is used to send a copy of the same message to multiple queues. You would then have a processing queue and a browsing/monitoring queue.

Resources