Can an mqi-based application access a dynamic queue in client binding mode? I'm using ibmmq for node, and it works for server binding mode.
Related
When I am creating a new Proxy Service using MQ transport, it only creates the Pipeline and not the actual proxy service.
This happens only with MQ transport and not with other types of adapters... The navigator in oracle service bus console is not displaying the proxy service and is only displaying the pipeline...
There are multiple enterprise applications running on IBM WebSphere 8.5
For one of our application, we want to set proxy level settings.
I know we can set proxy level on application server level by going to JVM Custom properties and setting http.proxyHost and http.proxyPort.
How can I set proxy level settings for single application on a server ?
Any help will be appreciated.
For example - employee-soap-services-0_1_0_war is my application which I want to run with proxy. Attached is the screen of all application in server.
As you told http.proxyHost setting is at JVM level and will have impact for every applications running on that JVM.
If your requirement is to route all the webservices calls through proxy, why cant you make the web services endpoint URL the address of a proxy server accessible over HTTP and route the request from their to the actual endpoint URL?
For example,
Your application ---> http://proxyserver.com:333/app=employee-soap ---> http://employee-soap-services-actual-endpoint/
I would like my Java MQ client to be able to access (do puts) to multiple MQ server endpoints (by endpoint i mean 'host/port/Qmanager/Queue/Channel'). Basically this Java app will get a request to put a message and the endpoint detail along with the request. It should be able to find the corresponding connection pool for the endpoint and use it to do the put.
From my limited understanding so far, the MQEnvironment is a global configuration (only one is possible in one JVM?) which can be configured to one endpoint at a time. So if the idea is multiple threads accessing multiple MQserver endpoints parallely - this does not seem to implementable with current understanding.
You can also use a Hashtable to pass connection parameters while creating a connection to queue manager. For example:
Hashtable<String, Object> properties;
properties = new Hashtable<String, Object>();
properties.put("hostname", "remotehost");
properties.put("port", new Integer(1414));
properties.put("channel", "REMOTEQM.SVRCONN");
MQQueueManager queueManager = new MQQueueManager(queueManagerName, properties);
Either you don't understand MQ very well or your MQ environment is not set up correctly.
Your MQ application should be connecting (and stay connected) to a single queue manager. The queue managers in your MQ environment should be interconnected such that when your MQ application puts a message destined for another queue manager, the local queue manager (that your application is connected to) will route the message to the correct queue manager.
When we set up a queue connection factory, a topic connection factory, a queue, a topic in websphere application server throguh the console, what exactly happens?
The server stores the configuration details in an xml and at server startup, it creates the connection factory(ies), topic(s),queue(s) and puts them in a pool?
I ask because the actual queue(s) and topics(s) itself do not reside on the App server, they reside on a separate (remote) websphere MQ server. So why do we need to 'create' the queues in Websphere App server?
The configuration is metadata for connecting to the remote objects. When the server starts (or an app restarts, or configuration is refreshed), the server reads the .xml, then binds Reference objects into JNDI. The actual connection factories aren't created/pooled until the Reference is first looked up.
I don't have enough experience with JMS to answer your second question, but presumably the metadata is required for the queue in order to access it remotely.
I am developing a service for JMS messaging using IBM WMQ version 7.5 as Message oriented middleware. I am in a dilemma. The IBM specification says to use WebSphere MQ JMS API in JAVA EE environment. My sender and receivers will be in remote JBoss deployments. IBM provides a resource adapter to connect via JCA. This connection requires static administration of components such as Queue managers, queue channels, queue names.
Is JCA the best I can do ? Is there any other way where I can dynamically create the queues provided that I know other configuration details ? There will be multiple applications using this setup running on their own servers. If I use JCA, all have to make their own configurations. Can I make dynamic configurations ?
Typically within the application server environment resources would be created in some JNDI context. These would be Connection Factories and Destinations.
Depending on the app server, it may be possible to share this configuration across a network of individual servers. So typically there would be some set of static definitions.
However within say a servlet the MQConnectionFactory can be dynamically created.
In all cases the backing WMQ Resources do need to exist; though it is possible to send administrative command messages to WMQ to create queues and do other admin. The only exception is topics, accessing a topic string brings it into existence. Though this has default security properties that you might not want.