cs400_de
04-01-10, 16:22
Hallo zusammen,
folgendes Szenario:
Maschine 1: V5R2
Maschine 2: V6R1 (seit letzer Woche)
Auf Maschine1 wird folgender SQL Befehl im Dialog ausgeführt:
CONNECT TO Maschine2 USER u1 USING password
select * from r3emddata/zsyn_ae
WRKACTJOB Anzeige auf der Maschine2:
Subsystem/Job Art Pool Pty CPU Int. Antw. AuxIO CPU %
QRWTSRVR PJ 2 20 37,5 0 0,2
Auf Maschine 1 wird die Tabelle angezeigt. Will ich die Abfrage (auf Maschine1) nun mit B ans Ende schicken, gibt es keine weiteren AUXIO auf der Maschine2. Der Befehl hängt für immer. Der Job QRWTSRVR läuft mit CPU Zeit hoch und muss gecancelt werden.
Ruft man dagegen folgendes auf Maschine 1 auf:
SELECT cast(Matnr as char(18)), CAST(MTART AS CHAR(4)),
CAST(VERSG AS CHAR(1)), CAST(GPNUM AS CHAR(9)),
CAST(DATUM AS CHAR(8))
FROM r3empdata/zsyn_ae
WHERE CAST(MANDT AS CHAR(3)) = '100'
ORDER BY matnr, datum desc
zählt der Job auf der Maschine2 hoch und kommt auch zu einem Ergebnis:
Subsystem/Job Art Pool Pty CPU Int. Antw. AuxIO CPU %
QRWTSRVR PJ 2 20 30,7 38023 2,1
Gut im Dialog ist mir das ganze ja auch egal.
Aber nicht im Embedded RPG.
Hier sollte das tun.
0035.00 C/EXEC SQL
0036.00 C+ DISCONNECT ALL
0037.00 C/END-EXEC
0038.00 C/EXEC SQL
0039.00 C+ RELEASE ALL
0040.00 C/END-EXEC
0041.00 C/EXEC SQL
0042.00 C+ CONNECT TO :H#SQL_SYS USER :H#SQL_USR USING :H#SQL_PWD
0043.00 C/END-EXEC
0044.00 C*
0045.00 C** TEIL 1:
0046.00 C** VERARBEITEN AUFTRAGSEINGANG **************************
0047.00 C*
0048.00 /FREE
0049.00 H#SQL = 'SELECT ' +0050.00 'CAST(MATNR AS CHAR(18)), ' +
0051.00 'CAST(MTART AS CHAR(4)), ' +
0052.00 'CAST(VERSG AS CHAR(1)), ' +
0053.00 'CAST(GPNUM AS CHAR(9)), ' +
0054.00 'CAST(DATUM AS CHAR(8)) ' +
0055.00 'FROM ' + %TRIM(H#SQL_SYS) + '/R3' + H#BEREICH + 'DATA/ZSYN_AE
0056.00 'WHERE ' +
0057.00 'CAST(MANDT AS CHAR(3)) = ''' + H#MANDANT + '''' +
0058.00 ' ORDER BY MATNR, DATUM DESC';0059.00 /END-FREE
0060.00 C*
0061.00 C/EXEC SQL
0062.00 C+ DECLARE C1 CURSOR FOR DYNAMIC_SQL_758
0063.00 C/END-EXEC
0064.00 C/EXEC SQL
0065.00 C+ PREPARE DYNAMIC_SQL_758 FROM :H#SQL0066.00 C/END-EXEC
0067.00 C/EXEC SQL
0068.00 C+ OPEN C1
0069.00 C/END-EXEC
0070.00 C*
0071.00 C** VERARBEITEN SELEKTIERTE SÄTZE
0072.00 C*
0073.00 C DO *HIVAL
0074.00 C*
0075.00 C/EXEC SQL
0076.00 C+ FETCH C1 INTO :H#MATNR ,
0077.00 C+ :H#MTART ,
0078.00 C+ :H#VERSG ,
0079.00 C+ :H#GPNUM ,
0080.00 C+ :H#DATUM
0081.00 C/END-EXEC
0082.00 C*
0083.00 C IF SQLCOD <> 0
0084.00 C LEAVE
0085.00 C ENDIF
0086.00 C*
0087.00 C EXSR WRITE_AZS
0088.00 C*
0089.00 C ENDDO
0090.00 C*
0091.00 C/EXEC SQL
0092.00 C+ CLOSE C1
0093.00 C/END-EXEC
0094.00 C*
Aber leider bleibt auch diese Programmverbindung stehen.
Generell scheint aber die Verbindung von V5R2 nach V6R1 zu klappen. Wir haben noch andere Programme die funktionieren. Deswegen kann ich das Problem auch nicht verstehen.
Das Programm auf der V5R2 Maschine ist auch neu kompiliert und das SQL Package auf der V6R1 Maschine neu erstellt.
Sollte eigentlich alles tun.
Kann mir hier jemand einen Tipp geben?
Grüße
C.Schulz
folgendes Szenario:
Maschine 1: V5R2
Maschine 2: V6R1 (seit letzer Woche)
Auf Maschine1 wird folgender SQL Befehl im Dialog ausgeführt:
CONNECT TO Maschine2 USER u1 USING password
select * from r3emddata/zsyn_ae
WRKACTJOB Anzeige auf der Maschine2:
Subsystem/Job Art Pool Pty CPU Int. Antw. AuxIO CPU %
QRWTSRVR PJ 2 20 37,5 0 0,2
Auf Maschine 1 wird die Tabelle angezeigt. Will ich die Abfrage (auf Maschine1) nun mit B ans Ende schicken, gibt es keine weiteren AUXIO auf der Maschine2. Der Befehl hängt für immer. Der Job QRWTSRVR läuft mit CPU Zeit hoch und muss gecancelt werden.
Ruft man dagegen folgendes auf Maschine 1 auf:
SELECT cast(Matnr as char(18)), CAST(MTART AS CHAR(4)),
CAST(VERSG AS CHAR(1)), CAST(GPNUM AS CHAR(9)),
CAST(DATUM AS CHAR(8))
FROM r3empdata/zsyn_ae
WHERE CAST(MANDT AS CHAR(3)) = '100'
ORDER BY matnr, datum desc
zählt der Job auf der Maschine2 hoch und kommt auch zu einem Ergebnis:
Subsystem/Job Art Pool Pty CPU Int. Antw. AuxIO CPU %
QRWTSRVR PJ 2 20 30,7 38023 2,1
Gut im Dialog ist mir das ganze ja auch egal.
Aber nicht im Embedded RPG.
Hier sollte das tun.
0035.00 C/EXEC SQL
0036.00 C+ DISCONNECT ALL
0037.00 C/END-EXEC
0038.00 C/EXEC SQL
0039.00 C+ RELEASE ALL
0040.00 C/END-EXEC
0041.00 C/EXEC SQL
0042.00 C+ CONNECT TO :H#SQL_SYS USER :H#SQL_USR USING :H#SQL_PWD
0043.00 C/END-EXEC
0044.00 C*
0045.00 C** TEIL 1:
0046.00 C** VERARBEITEN AUFTRAGSEINGANG **************************
0047.00 C*
0048.00 /FREE
0049.00 H#SQL = 'SELECT ' +0050.00 'CAST(MATNR AS CHAR(18)), ' +
0051.00 'CAST(MTART AS CHAR(4)), ' +
0052.00 'CAST(VERSG AS CHAR(1)), ' +
0053.00 'CAST(GPNUM AS CHAR(9)), ' +
0054.00 'CAST(DATUM AS CHAR(8)) ' +
0055.00 'FROM ' + %TRIM(H#SQL_SYS) + '/R3' + H#BEREICH + 'DATA/ZSYN_AE
0056.00 'WHERE ' +
0057.00 'CAST(MANDT AS CHAR(3)) = ''' + H#MANDANT + '''' +
0058.00 ' ORDER BY MATNR, DATUM DESC';0059.00 /END-FREE
0060.00 C*
0061.00 C/EXEC SQL
0062.00 C+ DECLARE C1 CURSOR FOR DYNAMIC_SQL_758
0063.00 C/END-EXEC
0064.00 C/EXEC SQL
0065.00 C+ PREPARE DYNAMIC_SQL_758 FROM :H#SQL0066.00 C/END-EXEC
0067.00 C/EXEC SQL
0068.00 C+ OPEN C1
0069.00 C/END-EXEC
0070.00 C*
0071.00 C** VERARBEITEN SELEKTIERTE SÄTZE
0072.00 C*
0073.00 C DO *HIVAL
0074.00 C*
0075.00 C/EXEC SQL
0076.00 C+ FETCH C1 INTO :H#MATNR ,
0077.00 C+ :H#MTART ,
0078.00 C+ :H#VERSG ,
0079.00 C+ :H#GPNUM ,
0080.00 C+ :H#DATUM
0081.00 C/END-EXEC
0082.00 C*
0083.00 C IF SQLCOD <> 0
0084.00 C LEAVE
0085.00 C ENDIF
0086.00 C*
0087.00 C EXSR WRITE_AZS
0088.00 C*
0089.00 C ENDDO
0090.00 C*
0091.00 C/EXEC SQL
0092.00 C+ CLOSE C1
0093.00 C/END-EXEC
0094.00 C*
Aber leider bleibt auch diese Programmverbindung stehen.
Generell scheint aber die Verbindung von V5R2 nach V6R1 zu klappen. Wir haben noch andere Programme die funktionieren. Deswegen kann ich das Problem auch nicht verstehen.
Das Programm auf der V5R2 Maschine ist auch neu kompiliert und das SQL Package auf der V6R1 Maschine neu erstellt.
Sollte eigentlich alles tun.
Kann mir hier jemand einen Tipp geben?
Grüße
C.Schulz