cancel
Showing results for 
Search instead for 
Did you mean: 

Testing 9 Websphere Appliciations for Portability

Former Member
0 Kudos

Greetings,

I have to do a proof of technology project to see if it's possible to port our suite of 9 Websphere applications to Netweaver. These are enterprise applications with EJB's and one of the applications uses MQ. I am thinking the big challenges will be porting the EJB's, getting the apps untangled from the IBM specific libraries in the development environment, and finding a replacement for MQ. Our MQ application talks to external MQ applications, so this might be the toughest part. Am I on the right track? Are there other areas to investigate? Given a short timeline, where should the focus be? Are there any essential links or references you can recommend?

Mike

Accepted Solutions (0)

Answers (8)

Answers (8)

Former Member
0 Kudos

More detail on the above error from the defaultTrace_00.0.trc file:

#1.5 #0019B96761FE00200000000E000015840148C25DAFF0EFA7#1204898943147#com.sap.engine.services.deploy##com.sap.engine.services.deploy#Administrator#161####93c86120ebd011dcc0b00019b96761fe#Thread[RMI/IIOP Worker [0],5,Dedicated_Application_Thread]##0#0#Warning##Plain###

Warning occurred on server 9253750 during stopApp sap.com/Hsg : Cannot destroy JNDI environment context for bean sap.com/Hsgxml|HsgEJB.jarxml|ENService. com.sap.engine.services.jndi.persistent.exceptions.NameNotFoundException: Path to object does not exist at ENService, the whole lookup name is ejbContexts/sap.com/Hsg/HsgEJB.jar/ENService/java:comp.

at com.sap.engine.services.jndi.implserver.ServerContextImpl.getLastContainer(ServerContextImpl.java:241)

at com.sap.engine.services.jndi.implserver.ServerContextImpl.lookup(ServerContextImpl.java:559)

at com.sap.engine.services.jndi.implclient.ClientContext.lookup(ClientContext.java:343)

at com.sap.engine.services.jndi.implclient.ClientContext.lookup(ClientContext.java:637)

at javax.naming.InitialContext.lookup(InitialContext.java:351)

at javax.naming.InitialContext.lookup(InitialContext.java:351)

HSG is the name of my application. It looks like it's having problems finding my ejb. Here's my ejb-jar.xml:

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE ejb-jar PUBLIC "-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 2.0//EN" "http://java.sun.com/dtd/ejb-jar_2_0.dtd">

<ejb-jar id="ejb-jar_ID">

<display-name>EnvUserMgmt</display-name>

<enterprise-beans>

<session id="UserMgmtService">

<ejb-name>UserMgmtService</ejb-name>

<home>ca.blah.usermgmt.application.beans.UserMgmtServiceHome</home>

<remote>ca.blah.usermgmt.application.beans.UserMgmtService</remote>

<ejb-class>ca.blah.usermgmt.application.beans.UserMgmtServiceBean</ejb-class>

<session-type>Stateless</session-type>

<transaction-type>Container</transaction-type>

</session>

<entity id="ENUserGroup">

<ejb-name>ENUserGroup</ejb-name>

<home>ca.blah.usermgmt.domain.ENUserGroupHome</home>

<remote>ca.blah.usermgmt.domain.ENUserGroup</remote>

<ejb-class>ca.blah.usermgmt.domain.ENUserGroupBean</ejb-class>

<persistence-type>Bean</persistence-type>

<prim-key-class>ca.blah.env.persistence.ObjectId</prim-key-class>

<reentrant>False</reentrant>

</entity>

<entity id="ENUserProfile">

<ejb-name>ENUserProfile</ejb-name>

<home>ca.blah.usermgmt.domain.ENUserProfileHome</home>

<remote>ca.blah.usermgmt.domain.ENUserProfile</remote>

<ejb-class>ca.blah.usermgmt.domain.ENUserProfileBean</ejb-class>

<persistence-type>Bean</persistence-type>

<prim-key-class>ca.blah.env.persistence.ObjectId</prim-key-class>

<reentrant>False</reentrant>

</entity>

</enterprise-beans>

</ejb-jar>

Vlado
Advisor
Advisor
0 Kudos

It's just a warning during stop of your app (not related to the previous error, actually).

Former Member
0 Kudos

Getting close now. The first app compiles and deploys. Having a problem finding the home interface to my session bean:

Error detected fetching default profile: BeanHelper.lookup("ejb/ca/mb/gov/usermgmt/application/beans/UserMgmtServiceHome", interface ca.mb.gov.usermgmt.application.beans.UserMgmtServiceHome) failed to locate home "Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file: java.naming.factory.initial

::StackTrace::javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file: java.naming.factory.initial

Mike

Vlado
Advisor
Advisor
0 Kudos

Seems you have a remote client of your session bean. You have to specify the Context.INITIAL_CONTEXT_FACTORY property (among other things) when creating the InitialContext, as described [here|http://help.sap.com/saphelp_nwce10/helpdata/en/45/e692b2cfaa5591e10000000a1553f7/frameset.htm].

HTH!

\-- Vladimir

Former Member
0 Kudos

After re-installing, I managed to get a little further. The task of porting the application to the new environment is a little trickier. I should mention this is old Java 1.3 EJB 1.1 code with Struts built into it, so converting is a pain. I am now getting this deployment error:

1. File:C:\projects\netw\hsg_sap\Hsg\Hsg.ear

Name:Hsg

Vendor:sap.com

Location:localhost

Version:2008.03.03.15.11.47

Deploy status:Warning

Version:HIGHER

Description:

1. Warning exception has been returned while the 'sap.com/Hsg' was starting. Warnings:

Warning occurred on server 9253750 during startApp sap.com/Hsg : Initialization of servlet [Action] failed. Check init() method of servlet. Error is: [javax.servlet.UnavailableException]

Result

Status:Warning

Looks like it can't run the Action servlet for my Hsg application. Everything looks right, but I'm not sure where to look.

Mike

Vlado
Advisor
Advisor
0 Kudos

The server trace files should contain more information about this issue: /usr/sap/CE1/J00/j2ee/cluster/server0/log/defaultTrace.trc.

Note that javax.servlet.UnavailableException is an application exception, i.e. it is typically thrown by a servlet or filter to indicate that it is permanently or temporarily unavailable. So something seems to be wrong with your app. Anyway, the default trace is the place to look into.

HTH!

\-- Vladimir

Former Member
0 Kudos

Thanks, Vladimir, that log is very useful. I can see the following error:

java.io.FileNotFoundException: C:
usr
bsiapps
env
logs
application.log (Access is denied)#

This means my application cannot write to a file on my local hard drive. For our apps that often means they will not start. This development workstation runs an image that is somewhat locked down. I created a new admin account on the workstation and switched the Sap instances over to that account. Unfortunately, they failed to log in, and now my services won't start. I am back to re-installing again.

Mike

Former Member
0 Kudos

Well, neither uninstall nor install succeeds. How do I manually remove CE?

Installation log snippet:

TRACE[W] 2008-03-02 00:18:15.062 [ianxcreghelper.cpp:244]

CNTRegistryKey::QueryValueAsJavaScript(SOFTWARE\SAP\SAP DBTech, IndepPrograms)

Error 2 (The system cannot find the file specified.

) in execution of a 'RegQueryValueEx' function, line (175), with parameter (IndepPrograms).

TRACE[E] 2008-03-02 00:18:15.062 [ianxcreghelper.cpp:492]

CNTRegistryKey::GetStringHKeyClass(const HKEY& hKeyClass)

MUT-03001 Value of type HKeyClass has illegal value '0'.

TRACE[W] 2008-03-02 00:18:15.062 [ianxcreghelper.cpp:244]

CNTRegistryKey::QueryValueType(SOFTWARE\SAP\SAP DBTech, IndepPrograms)

Error 2 (The system cannot find the file specified.

) in execution of a 'RegQueryValueEx' function, line (199), with parameter (IndepPrograms).

TRACE[E] 2008-03-02 00:18:15.062 [ianxcreghelper.cpp:492]

CNTRegistryKey::GetStringHKeyClass(const HKEY& hKeyClass)

MUT-03001 Value of type HKeyClass has illegal value '0'.

TRACE 2008-03-02 00:18:15.078

The step IdentifyAllInstances with key |NW_Uninstall_Integrated|ind|ind|ind|ind|0|0|NW_System_Uninstall|ind|ind|ind|ind|2|0|NW_uninstallDB|ind|ind|ind|ind|1|0|NW_ADA_Uninstall|ind|ind|ind|ind|5|0 has been executed successfully.

INFO 2008-03-02 00:18:15.78 [synxccuren.cpp:1016]

CSyCurrentProcessEnvironmentImpl::setWorkingDirectory(const CSyPath & L:/Program Files/sapinst_instdir/CE/UNINSTALL)

lib=syslib module=syslib

Working directory changed to L:/Program Files/sapinst_instdir/CE/UNINSTALL.

INFO 2008-03-02 00:18:15.78 [sixxcstepexecute.cpp:728]

Execute step IdentifyDbVersion of component |NW_Uninstall_Integrated|ind|ind|ind|ind|0|0|NW_System_Uninstall|ind|ind|ind|ind|2|0|NW_uninstallDB|ind|ind|ind|ind|1|0|NW_ADA_Uninstall|ind|ind|ind|ind|5|0

TRACE 2008-03-02 00:18:15.093

Call block:NW_ADA_Uninstall_ind_ind_ind_ind

function:NW_ADA_Uninstall_ind_ind_ind_ind_DialogPhase_IdentifyDbVersion_Preprocess

is validator: false

TRACE 2008-03-02 00:18:15.109 [sixxcstepexecute.cpp:795]

Execution of preprocess block of |NW_Uninstall_Integrated|ind|ind|ind|ind|0|0|NW_System_Uninstall|ind|ind|ind|ind|2|0|NW_uninstallDB|ind|ind|ind|ind|1|0|NW_ADA_Uninstall|ind|ind|ind|ind|5|0|IdentifyDbVersion returns TRUE.

TRACE 2008-03-02 00:18:15.109

Call block:NW_ADA_Uninstall_ind_ind_ind_ind

function:NW_ADA_Uninstall_ind_ind_ind_ind_DialogPhase_IdentifyDbVersion

is validator: false

TRACE 2008-03-02 00:18:15.218 [iaxxclib.cpp:188]

CLib::load()

Opened L:/DOCUME1/Glide/LOCALS1/Temp/sapinst_exe.2912.1204438647/iamodada.dll

TRACE[W] 2008-03-02 00:18:15.218 [ianxcreghelper.cpp:244]

CNTRegistryKey::QueryValueAsJavaScript(SOFTWARE\SAP\SAP DBTech, IndepPrograms)

Error 2 (The system cannot find the file specified.

) in execution of a 'RegQueryValueEx' function, line (175), with parameter (IndepPrograms).

TRACE[E] 2008-03-02 00:18:15.218 [ianxcreghelper.cpp:492]

CNTRegistryKey::GetStringHKeyClass(const HKEY& hKeyClass)

MUT-03001 Value of type HKeyClass has illegal value '0'.

TRACE[W] 2008-03-02 00:18:15.218 [ianxcreghelper.cpp:244]

CNTRegistryKey::QueryValueType(SOFTWARE\SAP\SAP DBTech, IndepPrograms)

Error 2 (The system cannot find the file specified.

) in execution of a 'RegQueryValueEx' function, line (199), with parameter (IndepPrograms).

TRACE[E] 2008-03-02 00:18:15.218 [ianxcreghelper.cpp:492]

CNTRegistryKey::GetStringHKeyClass(const HKEY& hKeyClass)

MUT-03001 Value of type HKeyClass has illegal value '0'.

ERROR 2008-03-02 00:18:15.218 [iaxabactorext.cpp:420]

CIaSdbActorExt::sdbSessionExecute_impl

MDB-07004 File not found: undefined.

ERROR 2008-03-02 00:18:15.218 [iaxxinscbk.cpp:244]

CJS-00030 Assertion failed: NW_ADA_Uninstall, step IdentifyDbVersion: The database instance 'CE1' does not exist or the Xserver is not running on 'oldpond'. Check logfile XCMDOUT.LOG for more information.

TRACE 2008-03-02 00:18:15.218 [iaxxejsbas.hpp:408]

handleException<ESAPinstException>()

Converting exception into JS Exception Exception.

TRACE 2008-03-02 00:18:15.218

Function setMessageIdOfExceptionMessage: modlib.jslib.caughtException

ERROR 2008-03-02 00:18:15.218

CJSlibModule::writeError_impl()

MUT-03025 Caught ESAPinstException in Modulecall: NW_ADA_Uninstall, step IdentifyDbVersion: The database instance 'CE1' does not exist or the Xserver is not running on 'oldpond'. Check logfile XCMDOUT.LOG for more information..

TRACE 2008-03-02 00:18:15.218 [iaxxejsbas.hpp:483]

EJS_Base::dispatchFunctionCall()

JS Callback has thrown unknown exception. Rethrowing.

ERROR 2008-03-02 00:18:15.234 [sixxcstepexecute.cpp:891]

FCO-00011 The step IdentifyDbVersion with step key |NW_Uninstall_Integrated|ind|ind|ind|ind|0|0|NW_System_Uninstall|ind|ind|ind|ind|2|0|NW_uninstallDB|ind|ind|ind|ind|1|0|NW_ADA_Uninstall|ind|ind|ind|ind|5|0|IdentifyDbVersion was executed with status ERROR ( Last error reported by the step :Caught ESAPinstException in Modulecall: NW_ADA_Uninstall, step IdentifyDbVersion: The database instance 'CE1' does not exist or the Xserver is not running on 'oldpond'. Check logfile XCMDOUT.LOG for more information..).

TRACE 2008-03-02 00:18:15.250 [iaxxgenimp.cpp:761]

CGuiEngineImp::showMessageBox

<html> <head> </head> <body> <p> An error occurred while processing service Uninstall - SAP Systems or Single Instances( Last error reported by the step :Caught ESAPinstException in Modulecall: NW_ADA_Uninstall, step IdentifyDbVersion: The database instance 'CE1' does not exist or the Xserver is not running on 'oldpond'. Check logfile XCMDOUT.LOG for more information..). You may now </p> <ul> <li> choose <i>Retry</i> to repeat the current step. </li> <li> choose <i>View Log</i> to get more information about the error. </li> <li> stop the task and continue with it later. </li> </ul> <p> Log files are written to L:\Program Files/sapinst_instdir/CE/UNINSTALL. </p> </body></html>

TRACE 2008-03-02 00:18:15.250 [iaxxgenimp.cpp:1257]

CGuiEngineImp::acceptAnswerForBlockingRequest

waiting for an answer from gui

Former Member
0 Kudos

I tried re-installing with Custom instead of Typical so I could see what was happening. Kaspersky Antivirus interrupted the install causing sapinst.exe to crash. Repeated retries fail at the same location using the old control files. Uninstall won't work either. It prompts me for the superdba password and says the password is wrong.

XCMDout.log snippet:

> Subprocess starts at 20080301231002

Execute Command : L:\sapdb\programs\pgm\dbmcli.exe -n oldpond -d CE1 -u CONTROL,******** load_systab -u SUPERDBA,******** -ud ********

Execute Session Command : exit

> Subprocess stops at 20080301231004

> Subprocess call failed

ERR

-24964,ERR_EXECUTE: error in program execution

1,""L:\sapdb\CE1\db\bin\x_python" "L:\sapdb\CE1\db\env\lsystab.py" -R "L:\sapdb\CE1\db" -d CE1 -u SUPERDBA,********

'import site' failed; use -v for traceback

Traceback (most recent call last):

File "L:\sapdb\CE1\db\env\lsystab.py", line 33, in ?

from installib import *

File "L:\sapdb\CE1\db\env\installib.py", line 16, in ?

import string

File "L:\python25\lib\string.py", line 81, in ?

import re as _re

File "L:\python25\lib\re.py", line 97, in ?

import sre_compile

File "L:\python25\lib\sre_compile.py", line 17, in ?

assert _sre.MAGIC == MAGIC, "SRE module mismatch"

AssertionError: SRE module mismatch

-


> Subprocess starts at 20080301231018

Execute Command : L:\sapdb\programs\pgm\dbmcli.exe -n oldpond -d CE1 -u CONTROL,******** load_systab -u SUPERDBA,******** -ud ********

Execute Session Command : exit

> Subprocess stops at 20080301231019

> Subprocess call failed

ERR

-24964,ERR_EXECUTE: error in program execution

1,""L:\sapdb\CE1\db\bin\x_python" "L:\sapdb\CE1\db\env\lsystab.py" -R "L:\sapdb\CE1\db" -d CE1 -u SUPERDBA,********

'import site' failed; use -v for traceback

Traceback (most recent call last):

File "L:\sapdb\CE1\db\env\lsystab.py", line 33, in ?

from installib import *

File "L:\sapdb\CE1\db\env\installib.py", line 16, in ?

import string

File "L:\python25\lib\string.py", line 81, in ?

import re as _re

File "L:\python25\lib\re.py", line 97, in ?

import sre_compile

File "L:\python25\lib\sre_compile.py", line 17, in ?

assert _sre.MAGIC == MAGIC, "SRE module mismatch"

AssertionError: SRE module mismatch

-


> Subprocess starts at 20080301231551

Execute Command : L:\sapdb\programs\pgm\dbmcli.exe -n oldpond -d CE1 -u CONTROL,******** load_systab -u SUPERDBA,******** -ud ********

Execute Session Command : exit

> Subprocess stops at 20080301231553

> Subprocess call failed

ERR

-24936,ERR_DBNORUN: database is not running

Former Member
0 Kudos

Spent an entire day trying to figure out what the administrator userid and password is for my installation. The password I entered during installation allowed me to log in with the control ID in the management console to see the database status, and that was the only ID I could see in the secure store. Decided to re-install CE on Monday in case something was missed.

Vlado
Advisor
Advisor
0 Kudos

The choice is yours but this is also described in the Getting Started guide in the trial download package (particularly see authentication.htm).

Former Member
0 Kudos

The problem was that when I tried to use NWA, it would prompt me for a userid and password. I tried AdministratorMaster Password, controlMaster Password, my Windows ID and password, and none of them worked.

Former Member
0 Kudos

Just an update. I have Developer Studio and CE installed. I have imported one of our enterprise applications, and I just have a few jsp errors to deal with which I believe I can safely ignore for now. The next job is getting the application deployed and run. Our apps use an RMI and Session service which we have defined on our Webpshere server. I need to figure out how to do this on CE. Unfortunately, all I have is the 90 day trail with no documentation, so this may take some digging.

Vlado
Advisor
Advisor
0 Kudos

Hmm, actually there is quite a lot of documentation about CE out there... Have you checked the CE homepage on SDN yet?

https://www.sdn.sap.com/irj/sdn/nw-ce

HTH!

-- Vladimir

former_member191469
Participant
0 Kudos

We have ported a couple of WebSphere J2EE applications to SAP WAS. Neither of them used EJBs or anything IBM-specific, especially not MQ. We had no problem porting the applications, and I wouldn't think that the EJBs would give you any problem. The MQ will, but do you have to move off of MQ in addition to WebSphere or can you keep it?

Former Member
0 Kudos

Unfortunately, EJB containers can be quite vendor specific. Ours depend heavily on IBM libraries. As for MQ, we don't have to move off of it. Moving to another messaging client would not be a big transition, but we are not the only ones using MQ in the enterprise. I suspect that even if we could migrate away from MQ there would still be a need for it to support other applications.