Websphere MQ Client installation - jms

I am working on a project where MQ client (Support PAC 7) is installed on one 64-bit Linux machine and it sends messages to server.
On client machine we are using 64-bit linux JDK 1.6.25
java -version
java version "1.6.0_25"
I have following environment variable set up
MQSERVER='my_channel/tcp/SRVD10995(1414)'
MQ_INSTALL_ROOT=/var/mqm/
MQ_JAVA_DATA_PATH=/var/mqm/
MQ_JAVA_INSTALL_PATH=/opt/mqm/java/
MQ_JAVA_LIB_PATH=/opt/mqm/java/lib64
LD_LIBRARY_PATH=/opt/mqm/java/lib64
CLASSPATH= /opt/mqm/java/lib/com.ibm.mq.jar:/opt/mqm/java/lib/com.ibm.mqjms.jar:/opt/mqm/samp/jms/samples:/opt/mqm/samp/wmqjava/samples
but when I run following command
dspmqver -p 6
For native libraries I am seeing following message:
Name: IBM WebSphere MQ
Version: 7.0.1.6
CMVC Level: k701-106-110721 mqjbnd=CC=2;RC=2495;AMQ8568: The native JNI library 'mqjbnd' was not found. [3=mqjbnd]::no mqjbnd in java.library.path
Build Type: Production
I am also getting same error message when I execute JMS code to connect to server. I do not have libmqjbnd.so is not in the /opt/mqm/java/lib64 folder, and not even in 32 bit folder.
I have couple of questions :
1) How do I fix this problem for client installation?
2) Does the library file (.so) need to be there in that directory ?
I will be thankful if anyone provides me answer to above questions, I have already invested many hours in this but no joy.

There's a Technote on this specific question here. Let us know if the solution presented there does not resolve your problem.
Update: I noticed a mismatch between your CLASSPATH which is pointing to the 32-bit libs and the other variables pointing to the 64-bit libs. WMQ provides scripts that set the variables for you as described in the Infocenter:
On a UNIX system, you can use the script setjmsenv (if you are using a 32-bit
JVM) or setjmsenv64 (if you are using a 64-bit JVM) to set the environment
variables. On AIX, these scripts are in the /usr/mqm/java/bin directory and,
on HP-UX, Linux, and Solaris, they are in the /opt/mqm/java/bin directory.
Many people source the scripts in their .profile. Have you tried running these? Remember that simply running the script...
/opt/mqm/java/bin/setjmsenv64
...does not result in the env vars being set in the current shell. The script must be sourced using the dot syntax as follows:
. /opt/mqm/java/bin/setjmsenv64
What results do you get after sourcing the appropriate setjmsenv or setjmsenv64 script?

Whether you need the libraries depends how you want to send messages to the server. WebSphere MQ allows you to choose between bindings mode and client mode. Bindings mode uses the libraries with some IPC while client mode is purely Java and TCP based.
If your programming language is Java then i would choose client mode.

This message occurs also when you forget to set properties for host, port, ...
This is in case of standalone MQ client.
MQEnvironment.hostname = "mqm.onZos.myCompany.com";
MQEnvironment.port = 1234;
MQEnvironment.channel = "SYSTEM.MYCH.NAME";

Related

How to use Perf in Clion remote mode?

Question
I want to use Perf when Clion connects to a remote server. I want to know how to set it up? Perf has been installed in the remote server (Ubuntu). But the configuration path of Perf can only detect the local paht (windows), not set to the server path.
I saw that Clion said that Profiling in remote mode has been used since the 2021.2 EAP version, but didnot say how to set the path to the remote server path.
Version
local: windows 10; remote server: Ubuntu20.04
Clion 2022.2.4
I look forward to your answers, thank you very much!
The SSH configuration, toolchain, and cmake have all been set up successfully. I can already develop remotely. The source code is stored in the local, mapped to the server and updated in real time.

ITRS, NetProbe, MQ QUEUE PLUG-IN without libmqic.so

We need to configure MQ QUEUE PLUG-IN connecting a RHEL Linux server. Below is version details.
Name: WebSphere MQ
Version: 8.0.0.5
Level: p800-005-160516.2
BuildType: IKAP - (Production)
Platform: WebSphere MQ for Linux (x86-64 platform)
Mode: 64-bit
O/S: Linux 2.6.32-754.2.1.el6.x86_64
http://resources.itrsgroup.com/docs/geneos/4.4.0/Netprobe/middleware/mq-queue.html
As per ITRS support we need libmqic.so - which is part of MQ Client Package. But since the server has MQ server installed we are not keen to install MQ Client.
So question is.
Can MQ Server and Client co-exist in same server ?
Its not logical that MQ server do not have equivalent of libmqic.so package. What is the equivalent of this in server installation ?
Can we just copy libmqic.so from a client installation and use ?
Any input on this would be great. Thank you.
Regards,
Dwija
The MQServer bundle from IBM includes RPMs for both client and server libraries.
You can check what is installed with this command (sort/paste/column just format it nice):
rpm -qa | grep MQSeries | sort | paste -s -d' \n' | column -t
You should see something like the following:
MQSeriesClient-8.0.0-4.x86_64 MQSeriesClient-U8005-8.0.0-5.x86_64
MQSeriesGSKit-8.0.0-4.x86_64 MQSeriesGSKit-U8005-8.0.0-5.x86_64
MQSeriesJava-8.0.0-4.x86_64 MQSeriesJava-U8005-8.0.0-5.x86_64
MQSeriesJRE-8.0.0-4.x86_64 MQSeriesJRE-U8005-8.0.0-5.x86_64
MQSeriesMan-8.0.0-4.x86_64 MQSeriesMan-U8005-8.0.0-5.x86_64
MQSeriesRuntime-8.0.0-4.x86_64 MQSeriesRuntime-U8005-8.0.0-5.x86_64
MQSeriesSamples-8.0.0-4.x86_64 MQSeriesSamples-U8005-8.0.0-5.x86_64
MQSeriesSDK-8.0.0-4.x86_64 MQSeriesSDK-U8005-8.0.0-5.x86_64
MQSeriesServer-8.0.0-4.x86_64 MQSeriesServer-U8005-8.0.0-5.x86_64
The 8.0.0-4 packages are the base install and the U8005 packages are the update to fixpack 8.0.0.5.
As long as you have the MQSeriesClient* packages installed you will have access to the libraries required by ITRS NetProbe MQ QUEUE PLUG-IN.
I do not know of any reason why a MQ Admin would have an issue with installing those packages that come as part of the MQ Server bundle.
If there is some reason they do not want to install those packages then another work around is to download the redistributable client (google MQC8 for the download link). You can just extract the tar into any location on the server and then make sure the LD_LIBRARY_PATH points to the locate you extracted the files to either the lib (32bit) or lib64 (64bit) sub directory. You can run file netprobe to check if it is 32bit or 64bit to see which is appropriate. If you need more details on this option let me know and I can add more.

Changing the SDK in WebSphere Application Server 8.5

When I try to start the the deployment manager in WebSphere Application Server I'm getting the following error:
00000001 SDKUtils
A ADML0004E: An exception occurred when attempting to expand variable $(JAVA_HOME) com.ibm.wsspi.runtime.variable.
UndefinedVariableException: Undefined variable JAVA_HOME
at com.ibm.ws.runtime.component.VariableMapImpl.expand(VariableMapImpl.j
First of all you cannot set third party Java SDK for traditional WebSphere Application Server. For WAS 8.5.5.x you can only select from IBM Java 6 and IBM Java 7 which must be downloaded from IBM and installed via Installation Manager. So don't play with JAVA_HOME variable manually.
Once you install Java 7 for WAS, you can use managesdk command line tool to switch Java for given profile and server.
See also:
Java 7.1 in IBM Websphere
managesdk command
since we can not start the deployment manger or default server, there is a way to solve this problem that is add the JAVA_HOME into varibles.xml file which is under server folder. path : Installserver/profile/config/node/cell/server
Please give some more information like OS, windows, or linux, or what.
If I understand correctly you'll use the jdk of the WAS installation elsewhere?
Under Windows set JAVA_HOME accordingly within the System environment properties. logout / login after this may be a good idea.
Under linux use: export JAVA_HOME=/opt/ibm/pathtoWAS/java
I would do this within .profile and maybe it's helpful to set the PATH to the jdk too!

Will the IBM Websphere Application Server run the Python/Jython script without Python Interpreter installed

I am new to Python and IBM Websphere Application Server.
I run a status.bat file which calls status.py file through wsadmin(provided username, password and status.py path passed as parameters to wsadmin). IBM Websphere Application Server is installed in the machine.What i want to know is a Python Interpreter needed to run a python script, it was not installed in the system.
Since the script is running through a WAS server-wsadmin, it had a capability to run a PY script even without having a PY Interpreter in that machine?? by its own compiling tool??
If it is must to have PYTHON.exe installed, do i need to tell wsadmin or anywhere that it is a PY script??
NOTE: The script and .bat was already existed in the machine and im supossed to work on it. I dont have any idea of the purpose of using wsadmin to run the script instead of by directly calling script by [python status.py] in .bat
Summary :- WS server had an any internal PY Interperter??
Thanks in Advance Friends....
WebSphere Application Server comes with Jython – Python implementation for JVM. It is usually located under <WAS_HOME>/optionalLibraries/jython.
To run a script you can use wsadmin:
./wsadmin.sh -lang jython -f your_script.py
The purpose of using wsadmin is that it provides facilities for server administration. If you don't need those then you can probably utilize optionalLibraries/jython/jython.jar directly although I never did this myself.

Systemtap for production server

I want to use systemtap for extracting details of my linux production server from remote access. I have some of the doubts regarding this:
Whether is it necessary to have same kernel in both the linux production server and linux development server.If not then how to add the support for that?
What are the minimum requirements to be present in the production server? Whether is it necessary to compile the kernel of the production server with the debuginfo ?
How to enable users in some particular group to run the stap scripts?
The kernel running on the production server and linux development server do not need to be identical. The SystemTap Beginners Guide describes doing cross-compile where instrumentation for one kernel version is built on a machine currently running different kernel version. This is described in:
http://sourceware.org/systemtap/SystemTap_Beginners_Guide/cross-compiling.html
The production server just needs the systemtap-runtime package. The production server does not need the kernel-devel or kernel-debuginfo installed when using the cross compile method.
There are stapusr and stapdev groups that allow people to run scripts. stapusr allows one to run existing script in /lib/modules/uname -r/systemtap directory (probably what is wanted in the case of running cross-compiled systemtap scripts). stapdev allow one to compile a script.
The stapusr and stapdev groups are described in:
http://sourceware.org/systemtap/SystemTap_Beginners_Guide/using-usage.html
Another capability in systemtap >1.4 is remote execution:
development_host% stap --remote=user#deployment_host -e 'probe begin { exit() } '
where cross-compilation, module transfer, trace data transfer are all automagically done via an ssh transport, as long as the deployment_host has corresponding systemtap-runtime bits installed.

Resources