cancel
Showing results for 
Search instead for 
Did you mean: 

JCA vs JCo

Former Member
0 Kudos

Hi,

When is it better to use JCo (through the SAP Connector wizards in the IDE or 'manually'), and when is it better to use JCA?

In case of JCA, are there any IDE wizards?

Thanks

Dov

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Hi Zornitsa,

I am trying to configure the Resource Adapter..

When I open my Visual Admin tool, in the Connector Container Server Services, the only available connector is sap.com/com.sap.jdo/SAPJDO, so I have tried to deploy the RAR file in sapjra-1.0.8-Beta.zip (downloaded from http://service.sap.com/) so that SAPJRA appears there to be configured.

When I deploy it using SDM, I get the following error message:

Details:

========

1) Error loading archive

C:\tmp\RAR\sapjra.rar

(server side name is: C:\tmp\RAR\sapjra.rar)

com.sap.sdm.util.sduread.IllFormattedSduFileException: The information about the development component

found in the SDA C:\tmp\RAR\sapjra.rar is either missing or incomplete!

Manifest attributes are missing or have badly formatted value:

attribute keylocation is missing

attribute keyname is missing

attribute keyvendor is missing

attribute keycounter is missing

Thank you very much for any help or documentation you can provide me with!

Dov

Former Member
0 Kudos

Hi Dov,

You can use the Deploy Tool that goes with Web AS Java to deploy sapjra.rar to the server.

The tool is located in <drive>\usr\sap\<system_name>\<instance>\j2ee\deploying. You start it using the DeployTool script. You must create a new project, then go to the Deployment tab of the tool and load the rar using the Deploy->EAR->Load Module menu. You will have to enter initial values for the properties of the ManagedConnectionFactory. After you confirm that you want the application started, you will have the JRA ready to be used in your system.

You can configure the MCF properties in the runtime of Connector Container Service, as you have already found out.

To use the JRA from other applications that you deploy on the server, you will have to add a reference to the JRA application in the application-j2ee-engine.xml.

Ok, I'm not sure if I managed to help you with these explanations, but in case you feel confused, check out the following documentation:

- Deploying the RAR file: http://help.sap.com/saphelp_nw04/helpdata/en/c5/5a92455c7fc44e99dfe55538a429e1/frameset.htm

- Configuring the MCF properties of a resource adapter: http://help.sap.com/saphelp_nw04/helpdata/en/f2/bbf2bc94d34bdead87d22c0b4464db/frameset.htm

And of course, if you have further questions, this is the right place to ask them:)

Zornitsa

Answers (7)

Answers (7)

Former Member
0 Kudos

Yes... probably I have moved the folder by mistake... now it deploys correctly...!

How should I refer to the connection? I am using:

ConnectionFactory connectionfactory = (ConnectionFactory) initialcontext.lookup("eis/SAPDov");

But this returns an error: "Path to object does not exist at eis"

In the JNDI registry in Visual Admin, I can see the following tree under deployedAdapters [Context]:

- deployedAdapters [Context]

-eis

-SAPDov

+ nonGlobalTx

+ unshareable

+ shareable

And in the connector container section, in the Connection Definition of the Managed Connection Factory, the Connector JNDI name is shown as "eis/SAPDov"

Thank you very much again!!!

Dov

Former Member
0 Kudos

Hi Dov,

You need a resource reference in your standard deployment descriptor - that is, ejb-jar.xml, if you lookup the connection factory from your enterprise bean.

Please, check the following documentation for more information about setting a resource reference:

http://help.sap.com/saphelp_nw04/helpdata/en/64/8590109a86f145958fb22dab86d58d/frameset.htm

Then you should be able to look up the connection factory by the string "java:comp/env/<resource_reference_name>.

Zornitsa

former_member374
Active Contributor
0 Kudos

Hi Dov,

You are thanking a poster for his answer.

Please next time also give him points.

See: /people/mark.finnern/blog/2004/08/10/spread-the-love

This time I did it for you.

Remember: When you ask a question you also assume the responsibility to assign points.

Please check your other questions and if the answers were good.

Spread the love and give some points.

Thanks in advance, Mark.

Former Member
0 Kudos

Hi Zornitsa,

I was out of office and couldn't reply before... thank you very much, it worked!

It seems that Mark already credited the points to you!

Dov

Former Member
0 Kudos

Hi Stephan,

I am using WebAS 6.4SP6

I found the file cross.jar in my file system on this folder "C:\usr\sap\DB0\JC00\j2ee\cluster\server0\bin\services\connector\cross"

Thank you,

Dov

Former Member
0 Kudos

Hi Zornitsa,

Here is what I see at the Log Viewer...

10:07:39.595 0 INFO LicensingManager started for 40 ms.

10:07:43.442 0 ERROR service cross - jar file C:\usr\sap\DB0\JC00\j2ee\cluster\server0\bin\services\cros

.jar does not exist.

10:07:43.613 1 ERROR java.io.FileNotFoundException: C:\usr\sap\DB0\JC00\j2ee\cluster\server0\bin\service

\cross.jar

at com.sap.engine.frame.core.load.res.JarResource.openJar(JarResource.java:401)

at com.sap.engine.frame.core.load.res.JarResource.getClassInfo(JarResource.java:130)

at com.sap.engine.frame.core.load.res.JarsResource.getClassInfo(JarsResource.java:41)

at com.sap.engine.frame.core.load.ResourceLoader.loadLocalClass(ResourceLoader.java:249)

at com.sap.engine.frame.core.load.ResourceLoader.loadClass(ResourceLoader.java:143)

at com.sap.engine.frame.core.load.ReferencedLoader.loadClass(ReferencedLoader.java:303)

at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:302)

at java.lang.Class.forName0(Native Method)

at java.lang.Class.forName(Class.java:219)

at com.sap.engine.core.service630.container.ServiceRunner.run(ServiceRunner.java:132)

at com.sap.engine.frame.core.thread.Task.run(Task.java:60)

at com.sap.engine.core.thread.impl5.SingleThread.execute(SingleThread.java:72)

at com.sap.engine.core.thread.impl5.SingleThread.run(SingleThread.java:126)

10:07:43.773 1 ERROR Service cross error. Nested exception is: java.lang.ClassNotFoundException: com.sap

engine.services.cross.CrossFrame

-


Loader Info -


ClassLoader name: [service:cross]

Parent loader name: [Frame ClassLoader]

References:

interface:cross

Resources:

C:\usr\sap\DB0\JC00\j2ee\cluster\server0\bin\services\cross.jar

Loading model: {parent,local,references}

-


at com.sap.engine.frame.core.load.ReferencedLoader.loadClass(ReferencedLoader.java:314)

at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:302)

at java.lang.Class.forName0(Native Method)

at java.lang.Class.forName(Class.java:219)

at com.sap.engine.core.service630.container.ServiceRunner.run(ServiceRunner.java:132)

at com.sap.engine.frame.core.thread.Task.run(Task.java:60)

at com.sap.engine.core.thread.impl5.SingleThread.execute(SingleThread.java:72)

at com.sap.engine.core.thread.impl5.SingleThread.run(SingleThread.java:126)

10:07:43.773 1 ERROR Core service cross failed. J2EE Engine cannot be started. --> java.lang.ClassNotFou

dException: com.sap.engine.services.cross.CrossFrame

-


Loader Info -


ClassLoader name: [service:cross]

Parent loader name: [Frame ClassLoader]

References:

interface:cross

Resources:

C:\usr\sap\DB0\JC00\j2ee\cluster\server0\bin\services\cross.jar

Loading model: {parent,local,references}

-


at com.sap.engine.frame.core.load.ReferencedLoader.loadClass(ReferencedLoader.java:314)

at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:302)

at java.lang.Class.forName0(Native Method)

at java.lang.Class.forName(Class.java:219)

at com.sap.engine.core.service630.container.ServiceRunner.run(ServiceRunner.java:132)

at com.sap.engine.frame.core.thread.Task.run(Task.java:60)

at com.sap.engine.core.thread.impl5.SingleThread.execute(SingleThread.java:72)

at com.sap.engine.core.thread.impl5.SingleThread.run(SingleThread.java:126)

10:07:43.442 0 ERROR service cross - jar file C:\usr\sap\DB0\JC00\j2ee\cluster\server0\bin\services\cros

.jar does not exist.

10:07:43.773 1 ERROR Service cross error. Nested exception is: java.lang.ClassNotFoundException: com.sap

engine.services.cross.CrossFrame

-


Loader Info -


ClassLoader name: [service:cross]

Parent loader name: [Frame ClassLoader]

References:

interface:cross

Resources:

C:\usr\sap\DB0\JC00\j2ee\cluster\server0\bin\services\cross.jar

Loading model: {parent,local,references}

-


at com.sap.engine.frame.core.load.ReferencedLoader.loadClass(ReferencedLoader.java:314)

at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:302)

at java.lang.Class.forName0(Native Method)

at java.lang.Class.forName(Class.java:219)

at com.sap.engine.core.service630.container.ServiceRunner.run(ServiceRunner.java:132)

at com.sap.engine.frame.core.thread.Task.run(Task.java:60)

at com.sap.engine.core.thread.impl5.SingleThread.execute(SingleThread.java:72)

at com.sap.engine.core.thread.impl5.SingleThread.run(SingleThread.java:126)

10:07:43.773 1 ERROR Core service cross failed. J2EE Engine cannot be started.

10:07:43.823 2 INFO Service runtimeinfo started. (20 ms).

And here is what I see in the Developer Studio Log:

17/08/2004 10:10:23 /userOut/deploy (com.sap.ide.eclipse.sdm.threading.DeployThreadManager) [Deploy Thread] ERROR:

MinhaApp.ear -> Deployment aborted

DEPLOYMENT ...

==> SDM host : C5057943L

==> SDM port : 50018

==> URL : file:/C:/DOCUME1/C5057943/LOCALS1/Temp/temp23923MinhaApp.ear

... ABORTED

Aborted: development component 'MinhaApp'/'sap.com'/'localhost'/'2004.08.16.12.14.47':

SDM could not start the J2EE cluster on the host C5057943L! The online deployment is terminated. A timeout occured during the cluster running verification!

(message ID: com.sap.sdm.serverext.servertype.inqmy.extern.EngineApplOnlineDeployerImpl.performAction(DeploymentActionTypes).STARTUP_CLUSTER)

Reason:

... ABORTED

Aborted: development component 'MinhaApp'/'sap.com'/'localhost'/'2004.08.16.12.14.47':

SDM could not start the J2EE cluster on the host C5057943L! The online deployment is terminated. A timeout occured during the cluster running verification!

(message ID: com.sap.sdm.serverext.servertype.inqmy.extern.EngineApplOnlineDeployerImpl.performAction(DeploymentActionTypes).STARTUP_CLUSTER)

DEPLOYMENT ...

==> SDM host : C5057943L

==> SDM port : 50018

==> URL : file:/C:/DOCUME1/C5057943/LOCALS1/Temp/temp23923MinhaApp.ear

... ABORTED

Aborted: development component 'MinhaApp'/'sap.com'/'localhost'/'2004.08.16.12.14.47':

SDM could not start the J2EE cluster on the host C5057943L! The online deployment is terminated. A timeout occured during the cluster running verification!

(message ID: com.sap.sdm.serverext.servertype.inqmy.extern.EngineApplOnlineDeployerImpl.performAction(DeploymentActionTypes).STARTUP_CLUSTER)

Thank you very much again!

Dov

Former Member
0 Kudos

Hi Dov,

the file "cross.jar" exists on my installation, but the path is wrong. Instead of "...\bin\service\cross.jar" the service should use "...\bin\services\cross\cross.jar". Very strange...

Which WAS version do you use?

Regards

Stefan

Former Member
0 Kudos

Hi Dov,

Obviously the reason is that a core service hasn't been started, which leads to server failure to start.

However, if you have managed to deploy SAPJRA already, your server should have been working initially, right?

So, maybe you could check if you have accidentally moved cross.jar to another folder - just search for this jar file and if you find it, copy it in the bin\services\cross.

I know this is not really a solution, but this is the only thing I can think of at this point:(

Zornitsa

Former Member
0 Kudos

Hi!

This is probably my last question... I am almost there...

I have deployed and configured my connection and created a simple test application.

I have also put references in all xml files in the EJB Module and also in the Application project.

But during deployment, I get the following error message:

java.lang.NoClassDefFoundError: com/sap/engine/services/cross/CrossGenerationDataImpl

Does this mean there is another reference missing? Any idea about which one?

Thank you again!

Dov

Former Member
0 Kudos

Hi Dov,

It is difficult to find out what the problem is by this exception only. Could you paste the whole stack trace that you get at deployment?

Zornitsa

Former Member
0 Kudos

Ops... I tried it again and it worked!

I'll create a test application and mark this question as answered!

Thank you

Dov

Former Member
0 Kudos

Great! Thank you very much Zornitsa!

I was able to open the RAR file in the DeployTool and also configure connection settings...

But when I run this deployment tool it strangely complains of my user and password:

ERROR: Cannot connect to Host: [localhost] with UserName: [Administrator]

Check your Login Info.

Exception is:

com.sap.engine.services.jndi.persistent.exceptions.NamingException: Exception while trying to get InitialContext. [Root exception is com.sap.engine.services.security.exceptions.BaseLoginException: Cannot create new RemoteLoginContext instance.]

(but my login information works in Visual Admin!)

If I try with SDM, I get the same error I described in the previous message...

Former Member
0 Kudos

Is there a step-by-step guide for configuring a connector in the Visual Admin?

I tried to do it and was not able, and I could find any detailed documentation on JCA for WebAS...

Former Member
0 Kudos

Hello Dov,

First of all, are you trying to configure JCo or the SAP Java Resource Adapter (JRA) on Web AS?

You can find information about JCA in Web AS at the following URL:

http://help.sap.com/saphelp_nw04/helpdata/en/97/fabc3d8af79633e10000000a11405a/frameset.htm

This section of the documentation explains the deployment of a resource adapter.

Zornitsa