Remote exporting of a database interface
I have an interface defining a database layer (all the following code has of course been simplified)
public interface Database {
public Collection select() throws Exception;
}and an implementation class
public class DatabaseImpl implements Database {
public Collection select() throws DatabaseException {
}Now, I wanted to be able to use this remotely as well, so I created an empty remote interface extending the Database interface as well as Remote:
public interface RemoteDatabase extends Database, Remote {
}and implement it like this:
public class RemoteDatabaseImpl extends UnicastRemoteObject implements RemoteDatabase {
DatabaseImpl databaseImpl;
public Collection select() throws RemoteException, DatabaseException {
return databaseImpl.select();
}On the client side I created a DatabaseProvider which returns a remote or local connection depending on configuration parameters:
public class DatabaseProvider {
public Database getDatabase() {
if (isRemoteConnection())
return connectRemoteDatabase();
else
return connectLocalDatabase();
}This works like a charm, but the generic "throws Exception" required on all the methods in the Database interface bothers me a lot. Without them I cant do the Remote extension, since that requires "throws RemoteException" on all the methods and I dont want to pollute the Database and DatabaseImpl classes with RemoteExceptions, so the generic Exception throws clause seems like the only solution. Optimally I would have liked the Database interface methods to simply throw DatabaseExceptions, such as RecordNotFoundException. I've spent quite a lot of time wrestling with this but haven't been able to come up with a "cleaner" implementation. So, I wonder if there is anyone here who could give me any pointers or suggestions on how to do this differently.
With thanks in advance,
Darri
You would normally do this by having two implementations of the Database interface - one which accesses the database locally and one which access the database remotely. (This is equivalent to your 'if' statement - I always try and avoid conditional logic where possible).
To get around the exception issue, you could wrap your remote implementation (which implements DatabaseRemote) with a wrapper which only implements Database. This wrapper could delegate all calls to the remote implementation and then decide how to deal with the RemoteExceptions that come back according to some (possibly pluggable) policy. Typically, you might retry select operations a few times before giving up. When you give up, you simply wrap your RemoteException inside a new DatabaseException and re-throw it.
Like this:
public class LocalDatabase implements Database {
public Collection select() throws DatabaseException {
try {
jdbc.select(blah);
} catch (SQLException e) {
throw new DatabaseException(e); // or whatever
public class RemoteDatabase implements (err...) RemoteDatabase { // you see what I mean here!
public Collection select() throws DatabaseException, RemoteException {
remote.select(blah);
public class LocalRemoteDatabaseWrapper implements Database {
public LocalRemoteDatabaseWrapper(RemoteDatabase remote) {
this.remote = remote;
public Collection select() throws DatabaseException {
int retry = 3;
while (true) {
try {
remote.select(blah);
return results;
} catch (RemoteException e) {
if (retry-- == 0) {
throw new DatabaseException(e);
}
Similar Messages
-
Help Import Export between different database interfaces ODI
Good morning!
I am new to ODI and would like to help me in the following doubts: I'm developing some interfaces in a database tests, it logically all my configuration connection is that bank.
When I import the interfaces in a database production, with another connection, I must reconfigure them totally, almost remaking them again? Or import, they automatically adjust?
I thank you
Emerson FormisanoHi Emerson,
I didn't get your point clearly.
Please write in a proper statement.
However I am telling you some checks and steps to export import.
1> Before importing the interface please check all the source and target data stores are present in the deployment environment (where you are going to import)
2> If not there Import the data stores first.
3> data source should be physically present in DB (in case of table)
4> If your data stores and KMs are available then you don't have to make the interfaces newly
Thanks -
Log on to remote server and start database -error while installing CI in HA
Hello All,
We are installing ECC 6.0 with High Availability using HP-UX. We have completed installation in ASCS and Database Instance. Now when were trying to install in Central Instance, we encountered an error at Start Instance which informed us to Log on to remote server and start database. However the database is already running in DB node. Please find the log below.
TRACE 2011-06-10 16:31:45.825 [syuxctask.cpp:1382]
CSyTaskImpl::start(bool)
A child process has been started. Pid = 25742
INFO 2011-06-10 16:31:45.835
CJSlibModule::writeInfo_impl()
Output of /usr/sap/PE2/SYS/exe/run/startsap all DVEBMGS01 DBMCI001 is written to the logfile start_PE2_DVEBMGS01.log.
WARNING 2011-06-10 16:31:46.345
CJSlibModule::writeWarning_impl()
Execution of the command "/usr/sap/PE2/SYS/exe/run/startsap all DVEBMGS01 DBMCI001" finished with return code 6. Output:
Database PE2 must be started on remote server
Log on to remote server and start database
WARNING[E] 2011-06-10 16:31:46.355
CJSlibModule::writeError_impl()
CJS-20022 Could not start instance 'DVEBMGS01' of SAP system PE2.
TRACE 2011-06-10 16:31:46.355 [iaxxejsbas.hpp:408]
handleException<ESAPinstJSError>()
Converting exception into JS Exception EJSException.
TRACE 2011-06-10 16:31:46.355
Function setMessageIdOfExceptionMessage: ind-rel.ind-os.ind-db.webas.startInstanceFailed
WARNING[E] 2011-06-10 16:31:46.355
CJSlibModule::writeError_impl()
CJS-20022 Could not start instance 'DVEBMGS01' of SAP system PE2.
TRACE 2011-06-10 16:31:46.355 [iaxxejsbas.hpp:483]
EJS_Base::dispatchFunctionCall()
JS Callback has thrown unknown exception. Rethrowing.
TRACE 2011-06-10 16:31:46.405 [syuxctask.cpp:1382]
CSyTaskImpl::start(bool)
A child process has been started. Pid = 25793
ERROR 2011-06-10 16:31:46.525 [sixxcstepexecute.cpp:950]
FCO-00011 The step start with step key |NW_ABAP_CI|ind|ind|ind|ind|0|0|NW_CI_Instance|ind|ind|ind|ind|10|0|NW_CI_Instance_Start|ind|ind|ind|ind|2|0|start was executed with status ERROR .
TRACE 2011-06-10 16:31:46.555 [iaxxgenimp.cpp:752]
CGuiEngineImp::showMessageBox
<html> <head> </head> <body> <p> An error occurred while processing option SAP ERP 6.0 EHP4 Ready - Support Release 1 > SAP Application Server ABAP > Oracle > High-Availability System > Central Instance . You can 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 option and continue with it later. </li> </ul> <p> Log files are written to /tmp/sapinst_instdir/ERPEhP4/AS-ABAP/ORA/HA/CI. </p> </body></html>
TRACE 2011-06-10 16:31:46.555 [iaxxgenimp.cpp:1255]
CGuiEngineImp::acceptAnswerForBlockingRequest
Waiting for an answer from GUI
Kindly let us know how to rectify the error and prroceed further with the instalaltion.
Thanks
RishiDear Guys,
we didnt change the date and time but i m very sure it is same trans.log file.
for your kind information please note SID and Nodes details
Sid (PE2)
DB Node : DBMDB001
CI Node : DBMCI001
also i am attaching starting part of the file.
4 ETW000 R3trans version 6.14 (release 701 - 26.01.09 - 12:46:00).
4 ETW000 unicode enabled version
4 ETW000 ===============================================
4 ETW000
4 ETW000 date&time : 07.11.2010 - 03:44:06
4 ETW000 control file: <no ctrlfile>
4 ETW000 R3trans was called as follows: R3trans -d
4 ETW000 trace at level 2 opened for a given file pointer
4 ETW000 [dev trc ,00000] Sun Nov 7 03:44:06 2010 295 0.000295
4 ETW000 [dev trc ,00000] db_con_init called 22 0.000317
4 ETW000 [dev trc ,00000] create_con (con_name=R/3) 116 0.000433
4 ETW000 [dev trc ,00000] Loading DB library '/usr/sap/PC1/SYS/exe/run/dboraslib.so' ...
4 ETW000 64 0.000497
4 ETW000 [dev trc ,00000] load shared library (/usr/sap/PC1/SYS/exe/run/dboraslib.so), hdl 0
4 ETW000 32161 0.032658
4 ETW000 [dev trc ,00000] Library '/usr/sap/PC1/SYS/exe/run/dboraslib.so' loaded
4 ETW000 39 0.032697
4 ETW000 [dev trc ,00000] function DbSlExpFuns loaded from library
/usr/sap/PC1/SYS/exe/run/dboraslib.so
4 ETW000 111 0.032808
4 ETW000 [dev trc ,00000] Version of '/usr/sap/PC1/SYS/exe/run/dboraslib.so' is "700.08",
patchlevel (0.25)
4 ETW000 265 0.033073
4 ETW000 [dev trc ,00000] function dsql_db_init loaded from library
/usr/sap/PC1/SYS/exe/run/dboraslib.so
4 ETW000 41 0.033114
4 ETW000 [dev trc ,00000] function dbdd_exp_funs loaded from library
/usr/sap/PC1/SYS/exe/run/dboraslib.so
4 ETW000 82 0.033196
4 ETW000 [dev trc ,00000] New connection 0 created 52 0.033248
4 ETW000 [dev trc ,00000] 0: name = R/3, con_id = -000000001 state = DISCONNECTED, perm = YES,
reco = NO , timeout = 000, con_max = 255, con_opt = 255, occ = NO
4 ETW000 41 0.033289
4 ETW000 [dev trc ,00000] db_con_connect (con_name=R/3) 84 0.033373
4 ETW000 [dev trc ,00000] find_con_by_name found the following connection for reuse:
4 ETW000 31 0.033404
4 ETW000 [dev trc ,00000] 0: name = R/3, con_id = 000000000 state = DISCONNECTED, perm = YES,
reco = NO , timeout = 000, con_max = 255, con_opt = 255, occ = NO
4 ETW000 37 0.033441
4 ETW000 [dev trc ,00000] Oracle Client Version: '10.2.0.4.0' 601 0.034042
4 ETW000 [dev trc ,00000] -->oci_initialize (con_hdl=0) 25 0.034067
4 ETW000 [dev trc ,00000] Client character set UTF16 -> UTF8 35674 0.069741
4 ETW000 [dev trc ,00000] Client NLS setting (OCINlsGetInfo): 'AMERICAN_AMERICA.UTF8'
4 ETW000 57 0.069798
4 ETW000 [dev trc ,00000] Logon as OPS$-user to get SAPSR3's password 55 0.069853
4 ETW000 [dev trc ,00000] Connecting as /@PC1 on connection 0 (nls_hdl 0) ... (dbsl 700
151208)
4 ETW000 34 0.069887
4 ETW000 [dev trc ,00000] Nls CharacterSet NationalCharSet C
EnvHp ErrHp ErrHpBatch
4 ETW000 52 0.069939
4 ETW000 [dev trc ,00000] 0 UTF8 0
0x6000000001052910 0x600000000105a3c0 0x600000000106ab38
4 ETW000 58 0.069997
4 ETW000 [dev trc ,00000] Allocating service context handle for con_hdl=0 40 0.070037
4 ETW000 [dev trc ,00000] Allocating server context handle 27 0.070064
4 ETW000 [dev trc ,00000] Attaching to DB Server PC1
(con_hdl=0,svchp=0x600000000106aa68,srvhp=0x600000000106de78)
4 ETW000 63 0.070127
4 ETW000 [dev trc ,00000] Assigning server context 0x600000000106de78 to service context
0x600000000106aa68
4 ETW000 60612 0.130739
4 ETW000 [dev trc ,00000] Allocating user session handle 97 0.130836
4 ETW000 [dev trc ,00000] Starting user session: OCISessionBegin(con_hdl=0,
usr='/',svchp=0x600000000106aa68, srvhp=0x600000000106de78, usrhp=0x60000000010fc940)
4 ETW000 64 0.130900
4 ETW000 [dev trc ,00000] Assigning user session 0x60000000010fc940 to service context
0x600000000106aa68
4 ETW000 9302 0.140202
4 ETW000 [dev trc ,00000] -->oci_prepare_stmt(con_hdl=0, len=53, stmth_p=0x6000000001077608)
4 ETW000 198 0.140400
4 ETW000 [dev trc ,00000] BEGIN DBMS_APPLICATION_INFO.SET_MODULE(:A0,:A1); END;
4 ETW000 38 0.140438
4 ETW000 [dev trc ,00000] CbApplInfoGet() failed! Ignore, but uninstall callback to avoid more
erroneous calls
4 ETW000 291 0.140729
4 ETW000 [dev trc ,00000] -->oci_prepare_stmt(con_hdl=0, len=54, stmth_p=0x6000000001078660)
4 ETW000 33 0.140762
4 ETW000 [dev trc ,00000] BEGIN DBMS_APPLICATION_INFO.SET_CLIENT_INFO(:A0); END;
4 ETW000 35 0.140797
4 ETW000 [dev trc ,00000] -->oci_prepare_stmt(con_hdl=0, len=0, stmth_p=0x6000000001078660)
4 ETW000 937 0.141734
4 ETW000 [dev trc ,00000] SELECT SID FROM V$MYSTAT WHERE ROWNUM<2
4 ETW000 36 0.141770
4 ETW000 [dev trc ,00000] Connected to session 297. 639 0.142409
4 ETW000 [dev trc ,00000] Now '/@PC1' is connected: con_hdl=0, nls_hdl=0, session_id=297.
4 ETW000 38 0.142447
4 ETW000 [dev trc ,00000] -->oci_prepare_stmt(con_hdl=0, len=0, stmth_p=0x6000000001078660)
4 ETW000 37 0.142484
4 ETW000 [dev trc ,00000] ALTER SESSION SET NLS_SORT = BINARY
4 ETW000 36 0.142520
4 ETW000 [dev trc ,00000] -->oci_prepare_stmt(con_hdl=0, len=0, stmth_p=0x6000000001078660)
4 ETW000 327 0.142847
4 ETW000 [dev trc ,00000] SELECT USERID, PASSWD FROM SAPUSER WHERE USERID IN (:A0, :A1)
4 ETW000 36 0.142883
4 ETW000 [dev trc ,00000] Got SAPSR3's password from OPS$-user 728 0.143611
4 ETW000 [dev trc ,00000] Disconnecting from connection 0 ... 38 0.143649
4 ETW000 [dev trc ,00000] Rolling back transaction ... 31 0.143680
4 ETW000 [dev trc ,00000] Closing user session
(con_hdl=0,svchp=0x600000000106aa68,usrhp=0x60000000010fc940)
4 ETW000 210 0.143890
4 ETW000 [dev trc ,00000] Now I'm disconnected from ORACLE 721 0.144611
4 ETW000 [dev trc ,00000] Connecting as SAPSR3/<pwd>@PC1 on connection 0 (nls_hdl 0) ... (dbsl
700 151208)
4 ETW000 40 0.144651
4 ETW000 [dev trc ,00000] Nls CharacterSet NationalCharSet C
EnvHp ErrHp ErrHpBatch
4 ETW000 37 0.144688
4 ETW000 [dev trc ,00000] 0 UTF8 0
0x6000000001052910 0x600000000105a3c0 0x600000000106ab38
4 ETW000 37 0.144725
4 ETW000 [dev trc ,00000] Assigning username to user session: con_hdl=0,
usrhp=0x60000000010fc940
4 ETW000 35 0.144760
4 ETW000 [dev trc ,00000] Assigning password to user session: con_hdl=0,
usrhp=0x60000000010fc940
4 ETW000 40 0.144800
4 ETW000 [dev trc ,00000] Starting user session: OCISessionBegin(con_hdl=0, usr=SAPSR3/<pwd>,
svchp=0x600000000106aa68, srvhp=0x600000000106de78, usrhp=0x60000000010fc940)
4 ETW000 337 0.145137
4 ETW000 [dev trc ,00000] Assigning user session 0x60000000010fc940 to service context
0x600000000106aa68
4 ETW000 4085 0.149222
4 ETW000 [dev trc ,00000] -->oci_prepare_stmt(con_hdl=0, len=54, stmth_p=0x6000000001077608)
4 ETW000 63 0.149285
4 ETW000 [dev trc ,00000] BEGIN DBMS_APPLICATION_INFO.SET_CLIENT_INFO(:A0); END;
4 ETW000 37 0.149322
4 ETW000 [dev trc ,00000] -->oci_prepare_stmt(con_hdl=0, len=0, stmth_p=0x6000000001077608)
4 ETW000 585 0.149907
4 ETW000 [dev trc ,00000] SELECT SID FROM V$MYSTAT WHERE ROWNUM<2
4 ETW000 36 0.149943
4 ETW000 [dev trc ,00000] Connected to session 297. 350 0.150293
4 ETW000 [dev trc ,00000] Now 'SAPSR3/<pwd>@PC1' is connected: con_hdl=0, nls_hdl=0,
session_id=297.
4 ETW000 38 0.150331
4 ETW000 [dev trc ,00000] -->oci_prepare_stmt(con_hdl=0, len=0, stmth_p=0x6000000001077608)
4 ETW000 38 0.150369
4 ETW000 [dev trc ,00000] ALTER SESSION SET NLS_SORT = BINARY
4 ETW000 34 0.150403
4 ETW000 [dev trc ,00000] -->oci_prepare_stmt(con_hdl=0, len=0, stmth_p=0x6000000001077608)
4 ETW000 294 0.150697
4 ETW000 [dev trc ,00000] SELECT VALUE FROM V$NLS_PARAMETERS WHERE PARAMETER IN
('NLS_LANGUAGE', 'NLS_TERRITORY', 'NLS_CHARACTERSET') ORDER BY PARAM
4 ETW000 66 0.150763
4 ETW000 [dev trc ,00000] ETER
4 ETW000 34 0.150797
4 ETW000 [dev trc ,00000] Database NLS settings: AMERICAN_AMERICA.UTF8 329 0.151126
4 ETW000 [dev trc ,00000] -->oci_prepare_stmt(con_hdl=0, len=0, stmth_p=0x6000000001077608)
4 ETW000 856 0.151982
4 ETW000 [dev trc ,00000] SELECT UPPER(INSTANCE_NAME),HOST_NAME,VERSION,TO_CHAR
(STARTUP_TIME,'MON DD, YYYY, HH24:MI:SS') FROM V$INSTANCE
4 ETW000 36 0.152018
4 ETW000 [dev trc ,00000] DB instance PC1 is running on scmdb001 with ORACLE version
10.2.0.4.0 since NOV 07, 2010, 03:23:10
4 ETW000 349 0.152367
4 ETW000 [dev trc ,00000] -->oci_prepare_stmt(con_hdl=0, len=0, stmth_p=0x6000000001077608)
4 ETW000 38 0.152405
4 ETW000 [dev trc ,00000] SELECT SUBSTR(NAME,1,3), TO_CHAR(CREATED,'YYYYMMDDHHMMSS')
FROM V$DATABASE -
Error in module RSQL of the database interface.
Hi Expert,
I get this error "Error in module RSQL of the database interface." when the below ABAP statement executed, do you know the root cuase? Thanks.
ABAP Code:
data lt_fact type TABLE OF /BIC/FZRT_C002.
data ls_Fact type /BIC/FZRT_C002.
*SELECT * INTO table lt_fact FROM /BIC/FZRT_C002 WHERE KEY_ZRT_C0021 in lt_RSDIMID and KEY_ZRT_C0022 in lt_caRSDIMID*.
Information in ST22.
What happened?
Error in the ABAP Application Program
The current ABAP program "SAPLZZ_FG" had to be terminated because it has
come across a statement that unfortunately cannot be executed.
Error analysis
An exception occurred that is explained in detail below.
The exception, which is assigned to class 'CX_SY_OPEN_SQL_DB', was not caught
in
procedure "ZCA_GET_CUBE_STOCK" "(FUNCTION)", nor was it propagated by a RAISING
clause.
Since the caller of the procedure could not have anticipated that the
exception would occur, the current program is terminated.
The reason for the exception is:
The SQL statement generated from the SAP Open SQL statement violates a
restriction imposed by the underlying database system of the ABAP
system.
Possible error causes:
o The maximum size of an SQL statement was exceeded.
o The statement contains too many input variables.
o The input data requires more space than is available.
o ...
You can generally find details in the system log (SM21) and in the
developer trace of the relevant work process (ST11).
In the case of an error, current restrictions are frequently displayed
in the developer trace.
Best Regards,
Andrewi have the same error but my first select is
SELECT QMNUM QMTXT QMDAT AUFNR OBJNR QMNAM QMART BTPLN IWERK BEBER INGRP EQUNR SERIALNR MATNR
INTO TABLE GT_VIQMEL
FROM VIQMEL
WHERE QMNUM IN S_QMNUM .
please tell me how to solve this error when i run 24000 raw this select dump.
ASAP
thanks
Eman elgammal. -
Reg: Error in RSQL module of database interface
Dear All,
I am getting this error.
Error in RSQL module of database interface. While i am giving the excise invoice date(j_1exchdr-exdat) more than 120 days i am getting this error.
SELECT VBRK~VBELN VBRK~FKART VBRK~WAERK VBRK~KNUMV VBRK~FKDAT
VBRK~KURRF VBRK~KUNAG VBRK~FKSTO
VBRP~POSNR VBRP~FKIMG VBRP~NETWR VBRP~VGBEL VBRP~MATNR
VBRP~ARKTX VBRP~MATKL VBRP~WERKS VBRP~LGORT
INTO CORRESPONDING FIELDS OF TABLE ITAB
FROM VBRK
INNER JOIN VBRP
ON VBRK~VBELN = VBRP~VBELN
WHERE VBRK~VBELN IN VBELN
AND VBRK~FKART IN FKART
AND VBRK~FKDAT IN FKDAT
AND VBRK~FKSTO NE 'X'
AND VBRP~MATKL IN MATKL
AND VBRP~WERKS IN WERKS
AND VBRP~LGORT IN LGORT.
what should i have to do? can i change this select query into selct for all entries what should i have to do?
Thanks,
Sankar MRuntime Errors DBIF_RSQL_INVALID_RSQL
Exceptn CX_SY_OPEN_SQL_DB
Date and Time 21.11.2008 15:24:50
ShrtText
Error in RSQL module of database interface.
What happened?
Error in ABAP application program.
The current ABAP program "Z_EXCISE_DET11H1" had to be terminated because one of
the
statements could not be executed.
This is probably due to an error in the ABAP program.
Error analysis
An exception occurred. This exception will be dealt with in more detail
below. The exception, assigned to the class 'CX_SY_OPEN_SQL_DB', was not
caught, which
led to a runtime error. The reason for this exception is:
The SQL statement generated from the SAP Open SQL Statement violates a
restriction imposed by the database system used in R/3.
Possible errors:
o The maximum size of an SQL statement has been exceeded.
o The statement contains too many input variables.
o The space needed for the input data exceeds the available memory.
o ...
You can usually find details in the system log (SM21) and in the
developer trace of the work process (ST11).
If an error occurs the developer trace often informs you about the
current restrictions.
Missing Handling of System Exception
Program Z_EXCISE_DET11H1
Trigger Location of Exception
Program Z_EXCISE_DET11H1
Include Z_EXCISE_DET11H1
Row 112
Module Name START-OF-SELECTION
Source Code Extract
Line SourceCde
82 FKART FOR VBRK-FKART,
83 FKDAT FOR VBRK-FKDAT,
84 VBELN FOR VBRK-VBELN, " OBLIGATORY DEFAULT '90002130',
85 MATKL FOR VBRP-MATKL OBLIGATORY," OBLIGATORY DEFAULT '01' NO INTERVALS NO-EX
86 LGORT FOR VBRP-LGORT NO INTERVALS NO-EXTENSION. "OBLIGATORY DEFAULT '1110'
87
88 SELECT J_1IEXCHDR~RDOC
89 FROM J_1IEXCHDR
90 INTO CORRESPONDING FIELDS OF TABLE EXCISEDOCNO
91 WHERE
92 J_1IEXCHDR~TRNTYP = 'DLFC' AND
93 J_1IEXCHDR~SRGRP IN SRGRP AND
94 J_1IEXCHDR~EXDAT IN EXDAT AND
95 J_1IEXCHDR~EXNUM IN EXNUM.
96
97 LOOP AT EXCISEDOCNO.
98 VBELN-SIGN ='I'.
99 VBELN-OPTION = 'EQ'.
100 VBELN-LOW = EXCISEDOCNO-RDOC.
101 APPEND VBELN.
102 ENDLOOP.
103
104 LOOP AT EXCISEDOCNO.
105 IF J_1IEXCHDR-TRNTYP = 'CEIV' .
106 DELETE EXCISEDOCNO.
107 MODIFY EXCISEDOCNO.
108 ENDIF.
109 ENDLOOP.
110 *ENDLOOP.
111
>>>>> SELECT VBRKVBELN VBRKFKART VBRKWAERK VBRKKNUMV VBRK~FKDAT
113 VBRKKURRF VBRKKUNAG VBRK~FKSTO
114 VBRPPOSNR VBRPFKIMG VBRPNETWR VBRPVGBEL VBRP~MATNR
115 VBRPARKTX VBRPMATKL VBRPWERKS VBRPLGORT
116 INTO CORRESPONDING FIELDS OF TABLE ITAB
117 FROM VBRK
118
119 INNER JOIN VBRP
120 ON VBRPVBELN = VBRKVBELN
121 WHERE VBRK~VBELN IN VBELN
122 AND VBRK~FKART IN FKART
123 AND VBRK~FKDAT IN FKDAT
124 AND VBRK~FKSTO NE 'X'
125 AND VBRP~MATKL IN MATKL
126 AND VBRP~WERKS IN WERKS
127 AND VBRP~LGORT IN LGORT.
128
129
130
131 -
RFC_ERROR_SYSTEM_FAILURE: Error in module RSQL of the database interface
HI All,
I am trying to execute an RFC through JCO connection and getting the error "RFC_ERROR_SYSTEM_FAILURE: Error in module RSQL of the database interface".
While debugging I have found that the actual cause of dump is a SQL command written in this RFC. The SQL command is
SELECT DISTINCT *
INTO CORRESPONDING FIELDS OF TABLE lt_calcrule_hol
FROM itc_calcrule_hol
FOR ALL ENTRIES IN calc_rule
WHERE rule_id = calc_rule-rule_id
AND start_date <= sy-datum
AND end_date >= sy-datum
AND (lv_ident)
AND ( (lv_orgs)
OR location_type = '' ).
Here the value of lv_ident is ======>> ident IN ('US','B2'.........................)
and value of lv_orgs is =========>> location_type IN ('S1','S2',..............................)
location_type and ident are columns in table itc_calcrule_hol .
I have analysed that if I pass around 700 enteries in the lv_ident and lv_ogs then it is working fine.
But if I have more than 900 enteries in these variables then it dumps.
Can anybody let me know what is the issue with the query here.And what could be the solution.
Thanks and Regards,
ReenaI'd recommend talking to an experienced basis admin or ABAP developer. First of all it would help to look at the short dump in SAP, to see if that gives any useful information. In case of a generic error like DBIF_RSQL_INVALID_RSQL, the developer trace of the work process (dev_w<n>) should contain further information (to get the number of the work process that handled your RFC call check the system log, which contains the reference along with a comment about the dump). So I'd check those first to see what actually caused the problem.
Information on maximum SQL statement length can either be retrieved from the database vendor's documentation or alternatively by searching SAP [OSS notes|https://service.sap.com/notes]. For the latter you need a valid user ID for the SAP service market place. -
Internal error in the database interface (Oracle)
I have recently an Oracle runtime error just by entering the SAP system (SAP ECC 6.0).
DBIF_RSQL_INVALID_REQUEST
The current ABAP/4 program terminated due to
an internal error in the database interface.
Error analysis
An invalid request was made to the SAP database interface in a statement
in which the table "DOKTL " was accessed.
Trigger Location of Runtime Error
Program SAPLSDOC
Include LSDOCU09
Row 249
Module type (FUNCTION)
Module Name DOCU_GET
I appreciate any helpful information.
Thank you very much indeed
Thomhi Thom,
most error relating to table DOKTL are caused by misconfigured network card.
if this is a "home" system, install a loopback adapter from Microsoft and use IP address 127.0.0.1 and also check "hosts" file for inconsistency. do not use the IP adddress provided by your ISP as it may change. -
Portal export/import on database 8.1.7 on an other machine
Hello,
I'm running Oracle8i on AIX. I have problem when I try full export/import my database (version 8.1.7) on an other machine. I have a problem with import users PORTAL30 and PORTAL30_SSO and CREATE TABLE 'WWSEC_ENABLER_CONFIG_INFO$'
The log when import full is:
IMP-00017: following statement failed with ORACLE error 22973:
"CREATE TABLE "WWSEC_ENABLER_CONFIG_INFO$" OF "SEC_ENABLER_CONFIG_TYPE" OID "
"'BA6473B86EF248BEE0330A18780F48BE' ( PRIMARY KEY ("LS_LOGIN_URL")) OBJECT "
"ID PRIMARY KEY PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 LOGGING STORAG"
"E(INITIAL 131072 NEXT 131072 MINEXTENTS 1 MAXEXTENTS 4096 PCTINCREASE 0 FRE"
"ELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT) TABLESPACE "TBS_PORTAL""
IMP-00003: ORACLE error 22973 encountered
ORA-22973: size of object identifier exceeds maximum size allowed
Thank you.
Borjana ZekicWhen using export/import between different releases, you need to use the older version of export to create your dump file. In your case, you must use the 8.0.5 export utility to export from your 8.1.7 database. You need a tnsname in your 8.0.5 tnsnames.ora that points to your 8.1.7 database. Then you use SQL Net to connect and do the export. So, instead of doing exp system/manager you would do exp system/manager@tnsname. Just be sure to use the 8.0.5 export, and your import will work fine.
-
Error in the module RSQL accessing the database interface
I have written the following query.
SELECT a~no
a~hist_no
a~chk_stat
a~chk_date
a~user as chk_user
b~name as chk_by
into corresponding fields of table hist
from zhist as a INNER JOIN zuser as b on
auser = bbname
where pspnr = v_pspnr
and chk_no = v_chk_no.
I am getting the dump "Error in the module RSQL accessing the database interface".
Please provide me the solution.
Thanx,
Selva.Hi,
As i have analysed your query in that you are putting the data in the internal table 'hist' which is also a standard structure and if you check in SE11 'hist' is the standard structure for 'Tablespace History' and might be because of that it is causing the problem.
Kindly check by changing the name of the internal table to tt_hist and then try.
I think that will solve the problem.
Regards,
Harsh Goel -
Error in module RSQL of the database interface! Please Help.
I am getting the error "Error in module RSQL of the database interface" in my program. Below is the code snippet in which the above error is:
=================================
FORM UPLOAD_PA_PB USING NB_LINE ID.
DATA: TOT_LINES TYPE I.
IF ID <> 'PA' and ID <> 'PB'. "UPG060507 - RY
only PA and PB tables
CHECK ID CP 'PA*'
OR ID CP 'PB*'.
DO NB_LINE TIMES.
READ DATASET DSN INTO IPREL_DB.
IF IPREL_DB+0(3) = P_FROM.
IPREL_DB+0(3) = P_TO.
ENDIF.
RP-CHECK-VALID-PAPB IPREL_DB S_BEGDA-LOW S_BEGDA-HIGH.
IF FLAG = 0. CONTINUE. ENDIF.
APPEND IPREL_DB.
ENDDO.
Begin of change - UPG060507 - RY
DELETE ADJACENT DUPLICATES FROM IPREL_DB.
End of change - UPG060507 - RY
IF TEST = SPACE.
IF ID = 'PA2010' or ID = 'PA0014' or ID = 'PA0015'.
PERFORM CLEAR_COST_ASSIGNMENT. "PUNM0002
ENDIF.
delete previous values
DELETE FROM (ID) WHERE PERNR IN PERS
AND BEGDA <= S_BEGDA-HIGH
AND ENDDA => S_BEGDA-LOW.
WRITE: / SY-DBCNT LEFT-JUSTIFIED, 'entrie(s) deleted from', ID.
insert the new ones
INSERT (ID) FROM TABLE IPREL_DB.
WRITE: / SY-DBCNT LEFT-JUSTIFIED, 'entrie(s) imported in', ID.
CALL FUNCTION 'DB_COMMIT'.
SKIP.
ELSE.
DESCRIBE TABLE IPREL_DB LINES TOT_LINES.
WRITE:/ TOT_LINES LEFT-JUSTIFIED, 'Entries Will Be Imported in',ID.
ENDIF.
REFRESH IPREL_DB.
ENDIF. "UPG060507 - RY
ENDFORM.
===============
Your help will be greatly appreciated and all the answers will be rewarded.
Thanks.
MithunHi Mithun,
Can you please tell at which line the error is shown.
Regards,
Atish -
Hi all
Can i import 10g (10.2.0.3) export to 9i database.
i execute import command in 9i database.
Please help as soon as posible.
regrds
upulThere are compatibility issues you should consider prior to attempt this export/import operation. If you took the export with the 10g export tool it won't be possible to be imported to any database prior to 10gR2, you are required to export from the 10gR2 DB with 9i export and import this data to the 9i Database with the 9i import tool.
For further references I suggest you to take a look at the Metalink Note:
Compatibility Matrix for Export & Import Between Different Oracle Versions
Doc ID: Note:132904.1
~ Madrid
http://hrivera99.blogspot.com/ -
Error in external database interface QXDA
Dear All,
While executing tcode DB02 or ST04 im getting error as "Error in external database interface QXDA". As per sap note 863623 we have changed the password for SIDnn and restarted system also executing command STARTSAP *DB successfully.
But the error still shown. Any advice
Best Regards,Dear Christian,
Thanks for your reply, while checking with command wrkactjob couldnt find job QXDAEDRSQL. when i start job with STARTSAP DB* command is executed without any error.
But still we couldnt find anyjob QXDAEDRSQL active.
as per your initial recommendation here are the logs from st11
M *** ERROR => AS400_API (APICODE 25) failed with SY-SUBRC = 3 [abas4api.c 1548]
M *** ERROR => AS400_API unable to connect to 'IDES' [dbsldb4ccm.c 593]
B
B Tue Jul 20 12:51:54 2010
B create_con (con_name=R/3*INACT_PACK)
B New connection 1 created
C Secondary DB connect, Service connection
C *** ERROR => CPE3025 occured. Refer to job log.
[dbsldb4dbi.c 474]
C *** ERROR => === Secondary DB connect FAILED! ===
[dbsldb4.cpp 15642]
C *** ERROR => === Connection settings ===
[dbsldb4.cpp 17698]
C *** ERROR => connected = FALSE
[dbsldb4.cpp 17699]
C *** ERROR => con_hdl = 1
[dbsldb4.cpp 17700]
C *** ERROR => db_handle = 0
[dbsldb4.cpp 17701]
C *** ERROR => dbhost = IDES
[dbsldb4.cpp 17702]
C *** ERROR => dbhostport =
[dbsldb4.cpp 17703]
C *** ERROR => rdbname =
[dbsldb4.cpp 17704]
C *** ERROR => dblib = R3IDODATA
[dbsldb4.cpp 17705]
C *** ERROR => r3sysle_changed = FALSE
[dbsldb4.cpp 17708]
C *** ERROR => query_compl_reval = O
[dbsldb4.cpp 17709]
C *** ERROR => dbconnecttype = U
[dbsldb4.cpp 17710]
C *** ERROR => user = IDO00
[dbsldb4.cpp 17711]
C *** ERROR => qaqqinilib = Default (QUSRSYS)
[dbsldb4.cpp 17715]
C *** ERROR => dbjobname =
C *** ERROR => rmtexelib = SAPIDOUC
[dbsldb4.cpp 17719]
C *** ERROR => parallel_alter_tables = *OFF
[dbsldb4.cpp 17722]
C *** ERROR => ===========================
[dbsldb4.cpp 17741]
B dbtran ERROR LOG (hdl_dbsl_error): DbSl 'PRE'
B RSLT: {dbsl=29, tran=16384}
B FHDR: {tab='PAKDATBUF', fcode=194, mode=2, bpb=0, dbcnt=0, crsr=0,
B hold=0, keep=1, xfer=0, pkg=0, upto=0, init:b=0,
B init:p=(nil), init:#=0, wa:p=(nil), wa:#=0}
B dbtran ERROR LOG (hdl_dbsl_error): DbSl 'PRE'
B STMT:
B CRSR: {tab='', id=0, hold=0, prop=0x1000, max.in@0=0, fae:blk=0,
B con:id=3000001, con:vndr=2, val=2,
B key:#=3, xfer=0, xin:#=19, row:#=0, upto=0, wa:p=0x7000000b8454240}
A TH VERBOSE LEVEL FULL
A ** RABAX: level LEV_RX_PXA_RELEASE_MTX entered.
A ** RABAX: level LEV_RX_PXA_RELEASE_MTX completed.
A ** RABAX: level LEV_RX_COVERAGE_ANALYSER entered.
A ** RABAX: level LEV_RX_COVERAGE_ANALYSER completed.
A ** RABAX: level LEV_RX_ROLLBACK entered.
A ** RABAX: level LEV_RX_ROLLBACK completed.
A ** RABAX: level LEV_RX_DB_ALIVE entered.
A ** RABAX: level LEV_RX_DB_ALIVE completed.
A ** RABAX: level LEV_RX_HOOKS entered.
A ** RABAX: level LEV_RX_HOOKS completed.
A ** RABAX: level LEV_RX_STANDARD entered.
A ** RABAX: level LEV_RX_STANDARD completed.
A ** RABAX: level LEV_RX_STOR_VALUES entered.
A Error in module RSQL of the database interface.. -
Help Error in RSQL module of database interface
I have my RFC using OO.
I can excute it in the ECC System, but when i using java to call the function , the error 'Error in RSQL module of database interface' return.
I don't know why? If any help, that will be great.
in SM21 , there is it:
BV5 Conversion error during INS database access for table ZCDPWF_LQ_
AB0 Run-time error "DBIF_RSQL_INVALID_RSQL" occurred
AB1 > Short dump "090429 095636 csrt05 CDPMORPHEUS " generated
Edited by: ross.wang on Apr 29, 2009 4:33 AMI just found that in RFC, the data element should not be the domain. but must be the data element, or called data type.
Change field data element, it will be ok
Hope it is helpful. -
We like to export data from 11g db to 9i db. tried the following:
1. Execute 9i export on 11g db app schema
2. Execute 11g export on 11g db app schema
3. Execute 9i import from step 1 into 9i db.
4. Execute 9i import from step 2 into 9i db.
Received core dump and the following error in both cases:
Export file created by EXPORT:V09.02.00 via conventional path
import done in US7ASCII character set and AL16UTF16 NCHAR character set
import server uses WE8ISO8859P1 character set (possible charset conversion)Memory fault(coredump)
Is there a way to move 11g data to 9i, besides sqlloader ?we are facing exactly same issue. We are trying to export from 11gR1 database using 9i client and import it into 9i database. 11g is having character set AL32UTF8 and target 9i is having WE8ISO8859P1.
While exporting NLS_LANG variable was set to AMERICAN_AMERICA.WE8ISO8859P1 and while importing the same was done. Even then I am facing following error while importing,
Import: Release 9.2.0.7.0 - Production on Mon Jul 23 05:42:15 2012
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
Connected to: Oracle9i Enterprise Edition Release 9.2.0.7.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.7.0 - Production
Export file created by EXPORT:V09.02.00 via conventional path
import done in WE8ISO8859P1 character set and AL16UTF16 NCHAR character setSegmentation Fault(coredump)
Any idea what might be the issue.
Edited by: user12044386 on Jul 23, 2012 1:40 AM
Edited by: user12044386 on Jul 23, 2012 1:51 AM -
DBIF_RSQL_INVALID_RSQL - Error in RSQL module of database interface.
Hi Frnds,
I get the the error snd short dump when Ia m running a report.
DBIF_RSQL_INVALID_RSQL - Error in RSQL module of database interface.
The program it is pointing to main program. Details are mentioned below.
Can anyone give some inputs as to why this error is coming..?
Regards
SPrakash
Information on where terminated |
The termination occurred in the ABAP program "/1BCDWB/DBBSEG" in
"START-OF-SELECTION".
The main program was "/1BCDWB/DBBSEG ".
The termination occurred in line 567 of the source code of the (Include)
program "/1BCDWB/DBBSEG"
| of the source code of program "/1BCDWB/DBBSEG" (when calling the editor 5670).
Source Code Extract
Line
SourceCde
537
START-OF-SELECTION.
538
IF MAX_SEL > 0.
539
RSEUMOD-TBMAXSEL = MAX_SEL.
540
ELSEIF MAX_SEL = 0.
541
CLEAR RSEUMOD-TBMAXSEL.
542
ENDIF.
543
IMPORT G_DATA_EXIT FROM MEMORY ID MEM_ID.
544
IF SY-BATCH IS INITIAL AND G_DATA_EXIT IS INITIAL.
545
IMPORT ACTION FROM MEMORY ID MEM_ID.
546
ELSE.
547
ACTION = 'ANZE'.
548
concatenate '/1BCDWB/DB' 'BSEG' into g_dbdatakey-eu_name.
549
g_dbdatakey-username = c_all.
550
import sort_NAME_TAB to %_TAB2_sort
551
field_name_tab to %_TAB2_field
552
from database dbdata(DB) id g_dbdatakey.
553
if sy-subrc = 0.
554
delete from dbdata
555
where relid = 'DB' and
556
eu_name = g_dbdatakey-eu_name and
557
username = c_all.
558
describe table %_tab2_field lines %_l_lines.
559
if not %_l_lines is initial.
560
%_TAB2[] = %_tab2_field[].
561
endif.
562
endif.
563
ENDIF.
564
CASE ACTION.
565
WHEN 'ANZE'.
566
try.
>>>>>
SELECT * FROM BSEG "client specified
568
APPENDING TABLE IBSEG
569
UP TO RSEUMOD-TBMAXSEL ROWS BYPASSING BUFFER
570
WHERE BUKRS IN I1
571
AND BELNR IN I2
572
AND GJAHR IN I3
573
AND BUZEI IN I4
574
AND BUZID IN I5
575
AND AUGDT IN I6
576
AND BSCHL IN I7
577
AND KOART IN I8
578
AND SHKZG IN I9
579
AND WRBTR IN I10
580
AND PSWSL IN I11
581
AND ZUONR IN I12
582
AND KOSTL IN I13
583
AND SAKNR IN I14
584
AND HKONT IN I15
585
AND LIFNR IN I16
586
AND MATNR IN I17Hello Satya
Another possible error cause might be that the SQL statement sent to the DB is too large. You could try the following:
SELECT * FROM bseg APPENDING TABLE ibseg
PACKAGE SIZE 500 " or 1000
WHERE bukrs IN ...
AND ...
ENDSELECT.
For details see the ABAP keyword documentation for <b>PACKAGE SIZE</b>.
Regards
Uwe
Maybe you are looking for
-
How to find out the type of "view"
Dear Friends, Can anyone please let me know, how can we identify if the list view created is a standard-view, datasheet-view, etc.... Is there a definitive way we can find out ? Best Regards
-
App server , process scheduler , web server and DB scripts
Team, Good Morning. I am looking for the script which will help me in doing health check-up for app server , process scheduler , web server and DB. The script should trigger a email when any one of the domain is down and when it get up. Waiting heart
-
Change the pen cursor preference
how do i change the pen cursor as it won't point to where i wanted it to be but about few millimetres away and only draws at certain angles and not free flowing-same goes with my shape tool which draws incrementally rather than free shaping. i tried
-
I just downloaded Digital Editions so I can read proceedings from a conference. I followed the instructions but cannot add the proceedings to ADE. The error message reads "Unable to add document xxx.epub. The document that you are attempting to add
-
Turn off security exceptions in Internet Explorer
When I want to read files with my applet using IE, I always get a security exception, though I've granted everything possible for unsigned applets !!! please help!!! any help is appreciated. cu oliver