Websphere Application Server support

Hello,

I know that the Supported technologies page only lists Websphere Liberty as being officially supported, but I have also seen references to future Websphere classic/full support being on the radar. It's been a while since I have seen any updates, is this still something that is expected to be added officially?

We have had success for the most part so far using the java agent with Websphere (classic) 8.5.5 in our development environment but would feel more comfortable with official support for production!

Thanks,

Hi and welcome to the forum!!

You are right, it IS on the radar and we have plans to officially support it. Your input can be very useful for that:

It would be useful if you can elaborate more about the "for the most part" part :slight_smile: - what didn't work?
What did you have to do specifically to make it work?
Are you using a security manager or is it disabled in your environment?
Did you update any of the WAS policy files? If so- which?
What type of environment are you using- a full distributed deployment (DMGR, node-agents etc.) or standalone?
Are metrics collected properly? Traces?
How did you install the agent?
Do you use any special class-loading settings, like child-first?
Which technologies are you using (e.g. DB, HTTP clients, caches, messaging etc.)?

Hi Eyal, I'd be happy to provide some feedback!

It would be useful if you can elaborate more about the "for the most part" part :slight_smile: - what didn't work?

  • I would actually say everything we have tried seems to be working so far, I just can't say for sure that everything does!

We do see the following INFO messages often in our logs that could indicate some issue:

000005f2 SystemOut O 2020-01-15 08:16:12.450 [WebContainer : 134] INFO co.elastic.apm.agent.bci.bytebuddy.ErrorLoggingListener - com.ibm._jsp._advancedStaffSearch refers to a missing class
000005f2 SystemOut O java.lang.IllegalStateException: Cannot resolve type description for com.ibm._jsp._advancedStaffSearch$_advancedStaffSearchHelper

What did you have to do specifically to make it work?

  • The only customization we needed was to add boot_delegation_packages to the elasticapm.properties, the list was taken from what websphere normally uses.
    I'd post it here but it's 40k characters - you can find it under this websphere file: ...\IBM\WebSphere\AppServer\configuration\config.ini varible org.osgi.framework.bootdelegation

Are you using a security manager or is it disabled in your environment?

  • No

Did you update any of the WAS policy files? If so- which?

  • No

What type of environment are you using- a full distributed deployment (DMGR, node-agents etc.) or standalone?

  • We use the distributed ND (network deployment)

Are metrics collected properly? Traces?

  • As far as we can tell they appear accurate, we have also used tomcat to run our application and the results we see are similar.

How did you install the agent?
Application servers > cmpwas01_server1 > Process definition > Java Virtual Machine
-javaagent:/example/elastic-apm-agent-1.9.0.jar -Delastic.apm.config_file=/example/elasticapm.properties

Do you use any special class-loading settings, like child-first?

  • We do use child-first class loading, but the agent also loaded with the default parent-first.

Which technologies are you using (e.g. DB, HTTP clients, caches, messaging etc.)?

  • Websphere + IHS on RHEL, Spring, Struts, Oracle, Hibernate ORM / Hibernate caching / Hibernate JMS queue, SAOP web services, etc...
1 Like

Thanks for your great input!!

Our assumption is that the main issue we will have to deal with when it comes to WAS support is getting everything to work with a security manager on. Since Java 2 security is disabled in your environment, this is not an issue.

We will probably also want to make it work without requiring OSGi configurations, but since you already handled this aspect, it is neither a concern for you.

I was not sure about how we would do with special class loading configurations and JMX integration in a ND environment, but looks like that's not a problem either.

Lastly, we are not too worried about compliance with J9, as we do test continuously our agent on Liberty. The remote attachment may not work on J9, but should be fine with javaagent installation.

Bottom line - although this is not officially supported, we don't expect to do massive changes that will be relevant to your case, so it's up to you.

One last question: was Java 2 security on or off by default with your WAS version?

Thanks again for the valuable info!

I'm told that java 2 security is disabled by default at least for 8.x.x versions in our experience.

Thank you for your comments and the information you could provide, I am reassured! Good luck.