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

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.

Related

Start ruby app as service on CentOS 7

I have a ruby script (actually an example script from the Oxidized project), which is written in Ruby and opens a UDP port (514) listening for syslog messages and executing some code in the background.
The system runs on CentOS 7. I want to start this script as "service" automatically when the OS boots. The script however needs to run as a specific user (oxidized) and should be controllable using normal "service ... [start|stop|status|...|" behaviour. What would be the best way to achieve this?
Startup services can be managed by 2 different boot systems.
CentOS6 uses System V (Old Boot System)
CentOS7 uses Systemd (New Boot System) (Systemd does support System V scripts.)
Here is a link "How to write startup script for systemd"
https://unix.stackexchange.com/questions/47695/how-to-write-startup-script-for-systemd
Here is a link "How to write a System V init script to start, stop, and restart my own application or service"
https://www.cyberciti.biz/tips/linux-write-sys-v-init-script-to-start-stop-service.html

Set WebSphere variables via command prompt

I am not allowed to use the websphere admin console and I need to set the Websphere variable DB2_JDBC_DRIVER_PATH .
Is there a way so that I can set this variable from the command prompt itself?
version :Websphere 8.5.5.7 ( Network Deployment Edition)
You can use wsadmin + the wsadminlib.py script library from github, it has a function named "setWebSphereVariable" which is pretty straightforward.
https://github.com/wsadminlib/wsadminlib
Basics of wsadmin:
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=phil&product=was-nd-dist&topic=txml_script

Export WAS 8 config to a Jython script?

I was wondering if it's possible to generate automatically a Jython script from a WAS 8 configuration for all the ressources, env var, etc?
Similar to the WebSphere administrative commands showing the jython command issued.
Thanks,
M

Websphere MQ Client installation

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";

Jython - How to get the path of the executed script

I've found many answer about the python way but what I found isn't working with jython.
I'm running a jython script using the WebSphere interpreter wsadmin -lang jython -f /path/to/script
I'd like to know the path of the script im running.
This script if versionned and can be checked out anywhere so I need to reliably know where the script is being executed from.
Thanx to everyone
WebSphere doesn't make this easy. And I've yet to find a way to do this when using Sun's JVM running WebSphere on Solaris. However, you may be able to figure out the script name using the environment when running WebSphere on Linux, Aix and possibly others OSes. On these platforms, IBM's JVM sets the environment variable IBM_JAVA_COMMAND_LINE. You can parse it to get the '-f' argument passed to wsadmin.sh Dave Brand has code to do this on his blog. See fix #6 in his ibmfixes.py script.

Resources