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 Formisano

    Hi  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
    Rishi

    Dear 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,
    Andrew

    i 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 M

    Runtime 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,
    Reena

    I'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
    Thom

    hi 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 Zekic

    When 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.
    Mithun

    Hi Mithun,
    Can you please tell at which line the error is shown.
    Regards,
    Atish

  • 10g export to 9i database

    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
    upul

    There 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 AM

    I 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.

  • 11g export to 9i database

    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 I17

    Hello 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