Can I use Java 8 on IBM's Bluemix Application Platform - java-8

I would like to use Java 8 features in Bluemix standalone java application, is this supported by default or do I need to alter some configuration?

You can ask for Java 8 with the default liberty buildpack by setting the following environment variable:
$ cf set-env myapp JBP_CONFIG_IBMJDK "version: 1.8.+"
See Customizing the JRE for additional details.

I don't know it's required, but I wouldn't leave such matters to the defaults. https://github.com/cloudfoundry/java-buildpack/blob/master/README.md#configuration-and-extension

Related

How to enable java flight recorder for tomcat installed on my windows machine?

I have a web app running inside my tomcat on my windows machine. I am trying to monitor it with Java Mission Control. I am getting an error message to unlock commercial features to access java flight recorder.. Please guide me where and how it needs to be enabled.
Thanks in advance..
You might try setting the CATALINA_OPTS environment variable, e.g.:
set CATALINA_OPTS=-XX:+UnlockCommercialFeatures -XX:+FlightRecorder -Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.rmi.port=7091 -Dcom.sun.management.jmxremote.port=7091 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false
Then start Tomcat as usual.

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!

How to set JVM arguments in Tomcat server

In eclipse I put these arguments into the run configuration but now I want to upload my app to the server (tomcat 7) and I have always error in deployment. so I want to know how to set these variables in the server as i did in eclipse?
-Djavax.xml.parsers.DocumentBuilderFactory=com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl
-Djavax.xml.parsers.SAXParserFactory=com.sun.org.apache.xerces.internal.jaxp.SAXParserFactoryImpl
I find the solution :D
I use tomcat7w.exe, in java tab, I add the arguments into Java options and it works.

Running .jacl scripts on WebSphere Liberty Profile

How do I run a .jacl script against a WebService Liberty Profile server?
I am told to run:
wsadmin.sh -conntype none -f setupWAS.jacl
But I don't think wsadmin is available in Liberty Profile.
You cannot manage Liberty profile using wsadmin. Quoting infocenter;
Restriction: The wsadmin tool does not apply to the Liberty profile.
See Administering the Liberty profile from the command prompt instead.
The Liberty profile only supports configuration (or reconfiguration) via editing of the XML configuration file (at least server.xml, perhaps others if you use includes).
I recommend following samples and examples from WASDev instead:
https://www.ibmdw.net/wasdev/docs/category/coding/

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

Resources