Anmeldung an SAP

Rund um Java und SAP®.

Anmeldung an SAP

Postby Jeremias2183 » Tue Jan 07, 2003 2:09 pm

Hallo,

ich habe einige Fragen zur Anmeldung an ein SAP System über den JCO.

1. Man kann Verbindungen über einen Connection Pool aufbauen, indem ich nur einen User verwende, der die angegebene maximale Anzahl von Verbindungen aufbauen kann. Gibt es hierbei nicht lizenzrechtliche Probleme, wenn ich mich mit diesem (Schnittstellenuser) mehrfach anmelde?

2. Angenommen, ich verwende Threads. Diese müssen sich bei ihrer Ausführung am SAP System anmelden, z.B. über einen Connection Pool. Wird dann für jeden Thread eine eigene Verbindung aufgebaut?

Ich hoffe, dass sich jemand mit dieser Thematik auskennt....

Viele Grüße

Janosch :roll:
Jeremias2183
.
.
 
Posts: 5
Joined: Tue Jan 07, 2003 2:09 pm

Postby Emre397 » Tue Jan 07, 2003 2:34 pm

Hallo Janosch,

zu deinem ersten punkt: Du brauchst auf alle fälle eine Lizenz für den User der den Connection Pool aufrecht erhält. Dadurch ermöglichst du es mehrere Anfragen über diese Account zu machen. Es ist nicht üblich daß du den Schnittelstellenuser mehrfach anmeldest...

Bei dem zweiten punkt bin ich mir unschlüssig was du meinst. Willst du, daß sich die einzelnen Threads am system anmelden im sinne von authentifizieren, oder eher nur zugriff auf das system und die daten.

Gruß Azreal
Emre397
...
...
 
Posts: 141
Joined: Mon Dec 09, 2002 1:53 pm

Postby Alva1590 » Tue Jan 07, 2003 2:50 pm

Hallöchen,

@Azreal

erstmal vielen Dank für Deine Antwort.

1) Der User, der den Connection Pool aufrecht erhält, ist doch mehrfach angemeldet (oder????). Ich habe das mal ausprobiert, indem ich mal mehrere Clients aus dem Pool gezogen habe. Im SAP System war der Schnittstellenuser dann mehrfach zu sehen (unter SM04). Und so weit ich weis, ist es doch nicht zulässig, dass ein User mehrfach angemeldet sein darf. Soweit ich das verstehe, wäre der Schnittstellenuser doch z.B. 100 Mal angemeldet, wenn ich die Connections auf 100 setze.

2) Bei meiner zweiten Sache meine ich Zugriff auf das System und die Daten. Also d.h. ich würde gerne gleichzeitig Kundendaten und Auftragsdaten zu einer Kundennummer lesen (als Beispiel). Wie geht das SAP System mit diesen Wunsch um :D Wird da vielleicht ein neuer Modi erzeugt??

Viele Grüsse

Janosch
Alva1590
.....
.....
 
Posts: 4387
Joined: Mon Dec 02, 2002 3:01 pm

Postby Emre397 » Tue Jan 07, 2003 3:13 pm

Servus nochmal,
also ich bin davon ausgegangen, daß dich ein Schnittstellenbenutzer im System authentifiziert. Der Connenctionpool erzeugt dir zu dem Benutzer mehrere Sessions ( sowas die Modi im R/3 ). Über diese Sessions kannst du dann ausführen was du willst. Funktionsbausteine usw.
Doch du hast recht bei mir zeigt er innerhalb der SM04 mehrfach vor. Der Grund dafür ist der Connectiontyp. Wie du sehen kannst ( die letzte Spalte ) entweder GUI oder RFC. Scheint so, daß jede RFC Verbindung jedesmal aufgelistet wird. Ich vermute zum mitprotokolieren.
Aber ich bin mir ziemlich sicher, daß der eigentliche Benutzer nur einmal angemeldet ist, und dir quasi das LImit von 100 Sessions zur verfügung stellt.

zu deinem zweiten Punkt: also ich würde dafür einfach mal nen Funktionsbaustein schreiben, der mir einfach beide ergebnisse zurückliefert. Wäre fänd ich die einfachere Lösung, als auf Javaseite groß hin und her zu hacken... :wink:
Theoretisch verwendest du da aber jeweils einen Connection aus dem Connectionpool. Die eine holt sich dir Auftragsdaten, die andere die Kundennummern.

Hoffe ich konnte dir helfen.
Gruß Azreal
Emre397
...
...
 
Posts: 141
Joined: Mon Dec 09, 2002 1:53 pm

Postby Christian4831 » Tue Jan 07, 2003 3:30 pm

Hi,

1. meiner Meinung nach ist der innerhalb von JCo benutzte User nicht einmal pro Connection sondern einmal pro Connection Pool angemeldet - und zwar ab dem Zeitpunkt an, an dem der Pool instanziiert wird. Bei einer neuen Verbindung (sprich, einem neuen JCO.Client Objekt) wird innerhalb des SAP Systems eine neue Session angelegt. Dies geschieht so lange, bis die maximale Anzahl an Connections (bzw. Sessions) erreicht ist. Wird diese überschritten, wartet JCo einen bestimmten Zeitraum bis eine frei wird und nimmt diese. Wird dieser Zeitraum überschritten wirft JCo eine Exception.

2. generell ist es sinnvoll, den innerhalb von JCO verwendeten R/3 Benutzer den Typ System zuzuweisen (transaktion SU01->Logon Data->User Type), da er ja keinen SAP GUI braucht.
Um auf Deine Frage zurück zu kommen: für jeden Thread müsstest Du dir theoretisch ein neues JCO.Client Objekt erzeugen (s.1.) und somit quasi parallel Daten aus dem System lesen können.

mfg,

Tim
Christian4831
..
..
 
Posts: 91
Joined: Mon Dec 02, 2002 7:33 pm


Return to Java & SAP®

Who is online

Users browsing this forum: No registered users and 3 guests