EJB Entity beans ,JDBC Stored procedures

Hi ,
I am new to EJB and i have some general questions
---Every table in an existing database is an entity bean for my application?
--- how do i define the queries in the entity bean ? (With PreparedStatement ?)
---The persistent fields,the ejbmethods,constructors, the table relationships, the prepared statements and stored procedures, are defined in the entity beans ?
--- how do i define the primary Keys in an Entity Bean !!! I will use EJB 2.1 and BMP
thanks in advance ...

Sandeep...
I have dblinks going all over the place. What you are talking about is a clustered or distributed database. That is the future (or present ) of large databases. My code is set up because an 'architecture' is not yet available in the database itself to support the concepts I've posted to Steve in other threads.
I fully believe that we'll eventually have BC4J ( or something like it ) directly in the database. I fully believe that the database will load balance these across a cluster of databases, within the database structure itself. For example... there is NOTHING to stop the JVM from deciding that it needs to load balance and submit the thread to a remote machine for processing... independent of creating a "middle tier" outside the database.
I believed that client-server model was flawed for most (not all) applications in the 80's. Looking at the "application tier" model I have the same feeling that we're creating an overly complex scheme at the wrong layer... just pushed back one stage so that we have to rewrite everything...
If you go back to the megalithic server design ( or cluster of servers ) with a thin thin front end... just why is the middle tier needed under the scenario I've outlined?
As such, stored procedures/triggers be they in java or pl/sql seems best bet to me... seeing's how a call spec to java or a pl/sql wrapper is transparent to the caller using jdbc or any other future technology.
grin Way outside the scope of the universe today... I see it as inevitable.
null

Similar Messages

  • JDBC stored procedure not working in Weblogic 12.1.3

    Hi,
    We are migrating from WLS 12.1.2 to 12.1.3.
    We have a JDBC stored procedure which used to work correctly under 12.1.2. I understand that 12.1.2 uses ojdbc5/ojdbc6 jars (11.2.0.x). After migrating to 12.1.3, the stored procedure is not working.
    We have narrowed it down to the different between 12.1.2 using ojdbc5/6 and 12.1.3 using ojdbc7 jars, though we do not understand what the difference here is.
    Connection connection = getConnection();
    CallableStatement callableStatement = connection.prepareCall("{call RECEIPT_LOG (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)}");
    callableStatement.registerOutParameter("PIO_RECEIPT_LOG_ID", java.sql.Types.INTEGER);
    callableStatement.setLong("PIO_RECEIPT_LOG_ID", 0);
    callableStatement.setString("PIO_DRAWER_NAME", request.getDrawerName());
    callableStatement.setString("PIO_DRAWER_FIRST_NAME", request.getDrawerFirstName());
    callableStatement.setString("PIO_DRAWER_OTHER_NAMES", "");
    callableStatement.setString("PIO_DRAWER_STREET_NO", "");
    callableStatement.setString("PIO_DRAWER_STREET", "");
    callableStatement.setString("PIO_DRAWER_LOCALITY", "");
    callableStatement.setLong("PIO_DRAWER_POSTCODE", 0);
    callableStatement.setString("PI_PAYMENT_TYPE", request.getPiPaymentType());
    callableStatement.setLong("PI_APPLICATION_ID", request.getApplicationId());
    callableStatement.setString("PI_PRIMARY_ID", request.getPiPrimaryId());
    callableStatement.setString("PI_SECONDARY_ID", request.getPiSecondaryId());
    callableStatement.setDouble("PI_AMOUNT", request.getPiAmount());
    callableStatement.setInt("PI_TAX_AMOUNT", 0);
    callableStatement.setNull("PI_VPC_TXNRESPONSECODE", java.sql.Types.VARCHAR);
    callableStatement.setInt("PI_VPC_TRANSACTIONNO", 0);
    callableStatement.setString("PI_VPC_MESSAGE", "");
    callableStatement.setString("PI_VPC_ACQRESPONSECODE", "");
    callableStatement.setString("PI_VPC_RECEIPTNO", "");
    callableStatement.setString("PI_VPC_BATCHNO", "");
    callableStatement.setString("PI_VPC_CARD", "");
    callableStatement.setString("PI_VPC_MERCHTXNREF", "");
    callableStatement.setString("PI_VPC_MERCHANT", "");
    callableStatement.setString("PI_VPC_ORDERINFO", "");
    callableStatement.setInt("PI_VPC_AMOUNT", 0);
    callableStatement.setString("PI_VPC_AUTHORIZEID", "");
    callableStatement.registerOutParameter("PO_RECEIPT_NO", java.sql.Types.VARCHAR);
    callableStatement.registerOutParameter("PO_SOURCE_ID", java.sql.Types.INTEGER);
    callableStatement.registerOutParameter("PO_PAYMENT_METHOD_TEXT", java.sql.Types.VARCHAR);
    callableStatement.registerOutParameter("PO_CREATE_COMMENT", java.sql.Types.VARCHAR);
    callableStatement.registerOutParameter("PO_ERROR_MESSAGE", java.sql.Types.VARCHAR);
    boolean isSuccessful = callableStatement.execute();
    Long receiptLogId = callableStatement.getLong("PIO_RECEIPT_LOG_ID");
    Here, when the callableStatement.execute() is fired, the isSuccessful is false and the output parameter receiptLogId is 0
    Any help appreciated.
    Regards,
    Rahul

    Hi All,
    We still haven't figured out what the problem is with JDBC when using ojdbc7.jar but, as an alternate solution we ported the code to Spring JDBC and got it working.
    Regards,
    Rahul

  • Help required in JDBC Stored Procedure

    Hi All,
    i have a requirement where i need to update the Database table using Stored Procedure from PI.
    I have the receiver JDBC channel and have done the mapping.
    The stored procedure has inputs of type NUMBER, VARCHAR2,DATE. in the message mapping i tried passing the same values in the type field, it throwed an error like UnSuppoted Format. Then i changed the type to integer for NUMBER and String for Varchar2 then also it is throwing an error like
    +java.sql.SQLException: ORA-06550: line 1, column 7: PLS-00306: wrong number or types of arguments in call to 'PUT_XXXXX' ORA-06550: line 1, column 7: PL/SQL: Statement ignored +
    Can any please help with what type i need to send from PI to Stored procedure?
    Also, there two out type fileds defined in the Stored procedure..which i didnt create in my PI structure. Do we need to create that fileds in our structure?
    Please help me.
    Thanks,
    Hemanth.

    Hi Hemanth Kumar,
    I understand that you want to execute a stored procedure using JDBC receiver channel and looking at error message, you think there is an issue with type defined in Data Type.
    Now you need to debug step by step.
    Step 1:- In Interface Mapping Determination, do not refer to Operational Mapping (delete only OM from there, not the receiver Message Interface). By doing so, you are not call the OM (which refer to Graphical Mapping (MM refer to Data Type (which you think is wrong)). Note: As there is no OM, we need to send the exact payload required by receiver JDBC from Runtime Work Bench, for testing purpose.
    Step 2:- In receiver JDBC channel, change u2018Message Protocolu2019 from u201CXML SQL Formatu201D to u201CNative SQL Stringu201D. By doing this, you can do testing very fast; receiver JDBC channel will take only String. And we need to send the exact String which is needed by JDBC Stored Procedure. [Link1|http://help.sap.com/saphelp_nwpi711/helpdata/en/44/7c24a75cf83672e10000000a114a6b/frameset.htm]
    Step 3:- Now from RWB test the scenario. Payload should like this, please take help of Data base team to find the String which needs to send.
    EXECUTE PUT_uspAddress @City = 'New York'
    OR If you have access to the database, logon to it directly and try running the Stored Procedure.
    Step 4:- Now, you should have the string which executes the Stored Procedure correctly to go ahead. Your job is 60% done.
    Step 5:- Now, in receiver JDBC channel, change u2018Message Protocolu2019 from u201CNative SQL Stringu201D to u201CXML SQL Formatu201D. So that receiver JDBC channel will take only XML.
    Step 6:- So now, you have to construct equalant XML structure to String you got in Step 4.
    It may look like this [Link2|http://help.sap.com/saphelp_nwpi711/helpdata/en/44/7b72b2fde93673e10000000a114a6b/frameset.htm]
    <StatementName>
        <storedProcedureName action=u201D EXECUTEu201D>
           <table> PUT_uspAddress </table>
            < City [isInput=u201Dtrueu201D] type=SQLDatatype>val1</ City>
        </storedProcedureName >
      </StatementName>
    Step 7:- Now use the XML you have constructed in Step 6, to test the scenario from RWB. Try to correct if you come up with some errors. Your job is 90% done.
    Step 8:- Now, in Interface Mapping Determination refer back the Operational Mapping again, which contain the Message Mapping. Make sure that Message Mapping give the XML output same as XML you have developed in Step 6.
    FYI. 1. Whatever youu2019re sending, it will be converted to JDBC statement and will be executed on the database. logSQLStatement(JDBC Additional parameters sapnote_0000801367) will be show in logging not in payload.
    2. Most of the cases, type defined in Data Type has no control of what we can send in that element (except Date type). Let say, you can define an element u2018Ageu2019 as u2018numberu2019, but you can always send u201Casdfasdfu201D as input in Message Mapping.
    Regards,
    Raghu_Vamsee

  • JDBC Stored procedure help required

    Hi All,
    Please let me know simple blogs how to use JDBC Stored procedure or any other method  in receiver jdbc adapter to insert or select in 2 tables
    Please  let me know simple blogs how to use JDBC Stored procedure or any other method  in sender jdbc adapter to select from 2 tables
    Thanks

    Hi,
    I am also looking for JDBC Stored procedure or any other method in sender jdbc adapter to select data from 2 tables
    Thanks

  • How to delete a database record by using EJB entity beans

    Hi, All,
    Does anyone know how to use entity bean to delete a database record? I have all the EJB entity beans created, including access beans to each. I can successfully create records, find and update records, however, I haven't find a way to delete records yet.
    Your response is appreciated.
    Cathy

    Please see EJB Forums for continue discussion on this subject.
    Reference titile: "how to delete database record by using CMP entity beans "

  • EJB entity beans and BC4J

    I have looked at BC4J and it looks good. Buy my question is that isn't this frame work in direct conflict with EJB entity beans. I know lot of stuff that is there in BC4J should have been in EJB enitiy beans, but as a developer why should I go with BC4J and not the standard EJB stuff considering the fact that BC4J is properietery to Oracle?Any thoughts?

    Vimal,
    Without going into exhaustive detail here, I would like to recommend that you take a look at the BC4J Technical White Paper available from the JDeveloper page on OTN (in the 3.0 Technical Information section):
    http://technet.oracle.com/products/jdev/info/techwp20/wp.html
    Amoung other things to note, BC4J is based on pure Java, and is what we consider a 'white box', meaning, you as a developer have complete control over what is going on. You can extend any of the code generated to customize it.
    Primarily though, the major benefit of BC4J is that we have taken care of most of the complicated communication code for you. Communication between the client and the data server, transaction handling, row locking, etc are already written for you. You just use, extend, customize what we have provided.
    In addition, BC4J allows you flexibility in your deployment environment decision. Regardless of where and how you deploy your BC4J Application Module, the client is unchanged.
    Those are the key advantages. Again, for more details, I would take a look at the white paper to see if it more fully addresses your questions.

  • JDBC/select/async statement to JDBC/stored procedure/sync call

    Hi
    We have JDBC/select/async statement to JDBC/stored procedure/sync call i.e sender and receiver are JDBC.
    PI has to pick all the the records of single internal order number at a time from sender system and upload to receiver JDBc,
    gets the response and routes to sender/insert statement.
    This should run only once per day.
    We will have multiple Internal orders daily, each order consisting of 10 to 20 records but only one IO related records has
    to upload to Receiver/JDBC
    What are the options available ?
    We have thought of following options
    1. SQL query is already to pick, but we have to pick records at one time daily. example: morning,evening or midnight.
       At that time it can pick multiple times but it should not pick through out day
    2. Is there any option in BPM so that we can group IO's at a time and upload ? If so what are the steps need to use
       Any additonal receive step need to be used to pick the records from the table.
    Thanks

    hi
    as i can understando you, you will receive mani IO and you must execute one IO in the receiver SP? if so, you can solve this usssing a ccBPM where you will have to create a mapping(0.N) where the source and the target structure will be the same, the diferrence will be in the occurrance of the target structure which will have to be 0.N (Tab signature in Message Mapping). then back to the ccBPM define a block with the property ForEach. this will  loop any times accord with the number of IO that you receive from the sender. as a result you will execute one SP for each IO.
    so, you ccBPM will be
    RS>TS>BLOCK(Multiline container and single container of source structure)>TS->SS
    RS:Receive Step
    TS:Trans. Step
    SS:Send Step
    Also the container will be:
    source--> type Abs
    source_multiline --> type Abs
    target -->type Abs
    Thanks
    Rodrigo P.
    Edited by: Rodrigo Alejandro Pertierra on Jun 24, 2010 4:54 PM

  • Pass a null value to a JDBC stored procedure call?

    pass a null value to a JDBC stored procedure call? Is this even possible? My DBA gave me a procedure to call that sometimes requires a null value. I don't think this is even possible.

    do you mind tell me how to resolve your problem?i using the setnull method,but it doesn't work.

  • Are EJB ( entity beans) are cached ?

    Are EJB ( entity beans) are cached ?
    I have a doubt here . As per my understanding , the entity beans are cached from the database. In that case , If I delete a row in the database by an external application ( say using TOAD tool) , how the Entity bean will be updated / reloaded ? Entity bean will be out of sync then .
    Application server : weblogic/webspehere .

    >
    You can use the refresh method of the EntityManager interface to read new values from the database (if you expect it to be out of sync), and use locks to prevent others from changing your data while the application is performing actions in a transaction.Did you mean I have to write code for this ? can't be made it automatic refresh by the container ? Is there any settings I can configure so that container can do it by itself proactively ?
    Also, using locks ...is this a container settings or I need to configure myself in ejb-jar.xml ? Could you please shed some light here ?

  • Does JServer support EJB/Entity beans

    What version of JServer lives in the following applications, and does it support EJB/Entity Beans or when will it.
    8.1.5 OAS
    8.1.5 8i
    8.1.6 OAS
    8.1.6 8i

    Check out the following link for details about the Beta Program: http://technet.oracle.com/products/oracle8i/java_beta/index.htm
    New features that will be available in the Beta include support for Entity Beans, and support for Servlets. It also includes JServer Accelerator (JServer's Native Compiler).

  • Problem deploying EJB entity bean

    Hi all!
    I'm trying to deploy an CMP entity bean with composite primary key.
    My environment is Oracle 8i (8.1.7) on W2K Professional and I'm using JDK 1.3.1_02.
    The error I get is:
    Compiling Stubs...done
    Generating Jar File...done
    Loading EJB Jar file and Comm Stubs Jar file...done
    Generating EJBHome and EJBObject on the server...
    An exception occurred during code generation: null
    I don't understand what am I doing wrong...
    Any help will be highly appreciated.
    [Could anyone point me out sample code for CMP entity beans with composite primary key?]
    Apologies for the length of the POST, just trying to pass as much info as I can...
    The table is the following:
    CREATE TABLE GPS_HIST (
    gps_date_of_fix     VARCHAR2(40) NOT NULL,
    gps_time_of_fix     VARCHAR2(40) NOT NULL,
    issi               NUMBER(10) NOT NULL,
    gps_condition          NUMBER(5),
    gps_latitude          VARCHAR2(40),
    gps_longitude          VARCHAR2(40),
    gps_speed_knt          NUMBER(10),
    constraint gps_hist_pk primary key (gps_date_of_fix, gps_time_of_fix, issi))
    TABLESPACE AVLDATA
    PCTFREE 10     PCTUSED 40
    INITRANS 1     MAXTRANS 255
    STORAGE (
    INITIAL 128K NEXT 128K PCTINCREASE 0
    MINEXTENTS 1 MAXEXTENTS 4096)
    NOCACHE;
    The primary key class is the following:
    package gps;
    public class GPSEntryPK implements java.io.Serializable
         public int ISSI;
         public String gpsTimeOfFix;
         public String gpsDateOfFix;
         public GPSEntryPK() {}
         public GPSEntryPK (String gpsDateOfFix, String gpsTimeOfFix, int ISSI)
              this.gpsDateOfFix = gpsDateOfFix;
              this.gpsTimeOfFix = gpsTimeOfFix;
              this.ISSI = ISSI;
         public String getGPSDateOfFix()
              return this.gpsDateOfFix;
         public String getGPSTimeOfFix()
              return this.gpsTimeOfFix;
         public int getISSI()
              return this.ISSI;
         public boolean equals(Object obj) {
              if ((obj instanceof GPSEntryPK) &&
                   (this.ISSI == ((GPSEntryPK)obj).ISSI) &&
                   (this.gpsTimeOfFix.equals(((GPSEntryPK)obj).gpsTimeOfFix)) &&
                   (this.gpsDateOfFix.equals(((GPSEntryPK)obj).gpsDateOfFix)))
                   return true;
              return false;
         public int hashCode() {
              return (this.gpsTimeOfFix.concat(this.gpsDateOfFix)).hashCode() * this.ISSI;
    The bean implemantation (part of it) is as follows:
    public void setEntityContext(EntityContext ctx)
    this.ctx = ctx;
    Properties props = ctx.getEnvironment();
    public void unsetEntityContext()
    this.ctx = null;
    public GPSEntryPK ejbCreate(String gpsDateOfFix, String gpsTimeOfFix, int ISSI, int gpsCondition,
    String gpsLatitude, String gpsLongitude, double gpsSpeedKnt)
    throws CreateException, RemoteException
    try {
    setGPSDateOfFix(gpsDateOfFix);
    setGPSTimeOfFix(gpsTimeOfFix);
    setISSI(ISSI);
    setGPSCondition(gpsCondition);
    setGPSLatitude(gpsLatitude);
    setGPSLongitude(gpsLongitude);
    setGPSSpeedKnt(gpsSpeedKnt);
    } catch (java.rmi.RemoteException e) {
    throw new CreateException();
    return null;
    public GPSEntryPK ejbFindByPrimaryKey(GPSEntryPK pk) throws RemoteException, FinderException {
    return null;
    public void ejbPostCreate(String gpsDateOfFix, String gpsTimeOfFix, int ISSI, int gpsCondition,
    String gpsLatitude, String gpsLongitude, double gpsSpeedKnt)
         throws CreateException
    // get primarykey
    GPSEntryPK pk = (GPSEntryPK)ctx.getPrimaryKey();
    public void ejbActivate() {}
    public void ejbPassivate() {}
    public void ejbRemove() {}
    public void ejbLoad()
    // You can get to the primary key
    GPSEntryPK pk = (GPSEntryPK)ctx.getPrimaryKey();
    public void ejbStore(){}
    The descriptors are the following:
    "gpsentry.xml"
    <?xml version="1.0"?>
    <!DOCTYPE ejb-jar PUBLIC "-//Sun Microsystems Inc.//DTD Enterprise JavaBeans 1.1//EN" "ejb-jar.dtd">
    <ejb-jar>
    <enterprise-beans>
    <entity>
    <description>no description</description>
    <ejb-name>GPSEntry</ejb-name>
    <home>gps.GPSEntryHome</home>
    <remote>gps.GPSEntry</remote>
    <ejb-class>gpsServer.GPSEntryBean</ejb-class>
    <persistence-type>Container</persistence-type>
    <prim-key-class>gps.GPSEntryPK</prim-key-class>
    <reentrant>False</reentrant>
    <cmp-field><field-name>gpsDateOfFix</field-name></cmp-field>
    <cmp-field><field-name>gpsTimeOfFix</field-name></cmp-field>
    <cmp-field><field-name>ISSI</field-name></cmp-field>
    <env-entry>
    <env-entry-name>realmName</env-entry-name>
    <env-entry-type>java.lang.String</env-entry-type>
    <env-entry-value>gps.realm</env-entry-value>
    </env-entry>
    <env-entry>
    <env-entry-name>GPSEntryBean.databaseURL</env-entry-name>
    <env-entry-type>java.lang.String</env-entry-type>
    <env-entry-value>jdbc:oracle:kprb:</env-entry-value>
    </env-entry>
    <env-entry>
    <env-entry-name>GPSEntryBean.JDBCDriverName</env-entry-name>
    <env-entry-type>java.lang.String</env-entry-type>
    <env-entry-value>oracle.jdbc.driver.OracleDriver</env-entry-value>
    </env-entry>
    </entity>
    </enterprise-beans>
    </ejb-jar>
    "oracle_gpsentry.xml"
    <?xml version="1.0"?>
    <!DOCTYPE oracle-descriptor PUBLIC "-//Oracle Corporation.//DTD Oracle 1.1//EN" "oracle-ejb-jar.dtd">
    <oracle-descriptor>
    <mappings>
    <ejb-mapping>
    <ejb-name>GPSEntry</ejb-name>
    <jndi-name>test/gpsentry</jndi-name>
    </ejb-mapping>
    </mappings>
    <persistence-provider>
    <description> specifies a type of persistence manager </description>
    <persistence-name>psi-ri</persistence-name>
    <persistence-deployer>oracle.aurora.ejb.persistence.ocmp.OcmpEntityDeployer</persistence-deployer>
    </persistence-provider>
    <persistence-descriptor>
    <description> This specifies a particular type of persistence manager to be used for a bean. param is where you would put bean specific persistence info in the format of params. The deployment process just passes what's in the param to the persistence deployer. For the baby persistence, we do parse the persistence-mapping but for other persistence backend we don't do anything with the params </description>
    <ejb-name>customerbean</ejb-name>
    <persistence-name>psi-ri</persistence-name>
    <psi-ri>
    <schema>AVLMIS</schema>
    <table>gps_hist</table>
    <attr-mapping>
    <field-name>gpsDateOfFix</field-name>
    <column-name>gps_date_of_fix</column-name>
    </attr-mapping>
    <attr-mapping>
    <field-name>gpsTimeOfFix</field-name>
    <column-name>gps_time_of_fix</column-name>
    </attr-mapping>
    <attr-mapping>
    <field-name>ISSI</field-name>
    <column-name>issi</column-name>
    </attr-mapping>
    <attr-mapping>
    <field-name>gpsCondition</field-name>
    <column-name>gps_condition</column-name>
    </attr-mapping>
    <attr-mapping>
    <field-name>gpsLatitude</field-name>
    <column-name>gps_latitude</column-name>
    </attr-mapping>
    <attr-mapping>
    <field-name>gpsLongitude</field-name>
    <column-name>gps_longitude</column-name>
    </attr-mapping>
    <attr-mapping>
    <field-name>gpsSpeedKnt</field-name>
    <column-name>gps_speed_knt</column-name>
    </attr-mapping>
    </psi-ri>
    </persistence-descriptor>
    </oracle-descriptor>
    Thanks in advance.

    Hi Nikos,
    I obviously don't know what your entire situation is, but you may not
    be aware that Oracle's DBMS embedded EJB container does not work well,
    and as a result, Oracle decided to replace it with an external EJB
    container which is part of a product called "Oracle Containers for
    J2EE" (otherwise known as "OC4J"). The "other" forum (the J2EE forum)
    deals mainly with OC4J.
    As far as I know, Oracle recommends doing your EJB related work with
    OC4J and not with the embedded EJB container.
    Good Luck,
    Avi. That's correct
    Java code, implementing data bound logic, can still run in the database as Java stored procedures/packages/functions/triggers
    while J2EE componentsdeployed in middle-tier implement business logic. Java in database enable the database to be an active participant to your deployment platform
    in 9iDB R2 you will even be able to call-out Web client (using HTTP Client), EJB client (using oc4jclient.jar) or Web Service client
    (using SOAP libraries)
    Kuassi

  • Problems accessing tables in oracle database with ejb entity bean

    I have created a simple server application that uses an entity bean (version 2.0) for an existing table in oracle database, and a session bean that is used as an outside interface for performing operations on that table.
    after deploying the server and client application the client attempts to perform an operation with the session bean remote interface it obtained.
    The session bean uses a locale interface to communicate with the entity bean, but when it tries to use its methods (create, findByXXX) it always get the following Exception: java.sql.SQLException: ORA-00942: table or view does not exist.
    the table of course exists, and the username password I'm using has all the permissions needed for this table.
    note - I'm using the Forte enterprise edition 4.0 as developer tool.
    I'll be glad to get some help.
    Here is the full stack trace of the exception:
    javax.ejb.TransactionRolledbackLocalException: Exception thrown from bean; nested exception is: javax.ejb.EJBException: nested exception is: java.sql.SQLException: ORA-00942: table or view does not exist
    javax.ejb.EJBException: nested exception is: java.sql.SQLException: ORA-00942: table or view does not exist
    java.sql.SQLException: ORA-00942: table or view does not exist
    at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:168)
    at oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java:208)
    at oracle.jdbc.ttc7.Oall7.receive(Oall7.java:543)
    at oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java:1405)
    at oracle.jdbc.ttc7.TTC7Protocol.parseExecuteDescribe(TTC7Protocol.java:643)
    at oracle.jdbc.driver.OracleStatement.doExecuteQuery(OracleStatement.java:1674)
    at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1870)
    at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:363)
    at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:314)
    at com.sun.ejb.persistence.SQLEngine.ejb20Finder(SQLEngine.java:226)
    at com.sun.ejb.persistence.PartitionImpl.ejbFinder(PartitionImpl.java:736)
    at com.cti2.telco.core.ejb.entity.userInfo.UserInfoEJB_PM.ejbFindByEmail(UserInfoEJB_PM.java:393)
    at com.cti2.telco.core.ejb.entity.userInfo.UserInfoEJB_PM_LocalHomeImpl.findByEmail(UserInfoEJB_PM_LocalHomeImpl.java:64)
    at com.cti2.telco.core.ejb.UserManagerEJB.authenticate(UserManagerEJB.java:77)
    at com.cti2.telco.core.ejb.UserManagerEJB.authenticate(UserManagerEJB.java:68)
    at com.cti2.telco.core.ejb.UserManagerEJB_EJBLocalObjectImpl.authenticate(UserManagerEJB_EJB
    LocalObjectImpl.java:63)
    at com.cti2.telco.core.ejb.dispatch.TelcoFacadeEJB.userLogin(TelcoFacadeEJB.java:80)
    at com.cti2.telco.core.ejb.dispatch.TelcoFacadeEJB_EJBObjectImpl.userLogin(TelcoFacadeEJB_EJBObjectImpl.java:24)
    at com.cti2.telco.core.ejb.dispatch._TelcoFacadeEJB_EJBObjectImpl_Tie._invoke(Unknown Source)
    at com.sun.corba.ee.internal.POA.GenericPOAServerSC.dispatchToServant(GenericPOAServerSC.java:519)
    at com.sun.corba.ee.internal.POA.GenericPOAServerSC.internalDispatch(GenericPOAServerSC.java:204)
    at com.sun.corba.ee.internal.POA.GenericPOAServerSC.dispatch(GenericPOAServerSC.java:112)
    at com.sun.corba.ee.internal.iiop.ORB.process(ORB.java:273)
    at com.sun.corba.ee.internal.iiop.RequestProcessor.process(RequestProcessor.java:84)
    at com.sun.corba.ee.internal.orbutil.ThreadPool$PooledThread.run(ThreadPool.java:99)
    ...

    Well it seems like the problems has a simple explanation. The Forte assigns a default table name (<entityName>EJBTable) when creating an entity bean from an existsing table in DB (which is not the same as the one it was created from !!!). Also, for reason unknown, when you deploy these entity beans, it doesn't even create the new table under its new name (even if instructed to).
    So using the Forte we managed to use successfuly only entity beans that were created "from scretch" (when deployed their tables are created).
    Does anyone know how to change the default name the Forte uses, and make it work properly with entity beans created from an existsing table (without going over the xml's) ?

  • Problem with JDBC stored procedure

    Hi...
    We are implementing an interface from SAP r/3 4.7 to Oracle DB 9.0. On sender side we have used IDOC Adapter and on Receiver side we have used JDBC Adapter.
    Here we are using stored procedures in JDBC Adapter. I have 2 stored procedures(one for header and one for items) and SISCSO.SISCSO01 IDOC.
    Here we are getting following error in RWB for JDBC Receiver adapter....
    <b>Error</b>
    " Receiver Adapter v2112 for Party '', Service 'BS_ORADEV':
    Configured at 2006-08-16 10:12:14 GMT+05:30
    History:
    - 2006-08-16 11:02:04 GMT+05:30: Error: TransformException error in xml processor class: Error processing request in sax parser: Error when executing statement for table/stored proc. 'PR_SPARES_VOR_PO_HDR_UPLOAD' (structure 'statement'): java.sql.SQLException: ORA-06550: line 1, column 7:
    PLS-00201: identifier 'PR_SPARES_VOR_PO_HDR_UPLOAD' must be declared
    ORA-06550: line 1, column 7:
    PL/SQL: Statement ignored ".
    <b>My mapping file is like this.....</b>
    <?xml version="1.0" encoding="UTF-8"?>
    <ns0:TVS_MST_SPARES_ORDER xmlns:ns0="urn:tvsmotor:salesorder"><statement><PR_SPARES_VOR_PO_HDR_UPLOAD action="execute"><table>PR_SPARES_VOR_PO_HDR_UPLOAD</table><IN_DEALER_ID isInput="true" type="String">efde</IN_DEALER_ID><IN_SPARE_PO_NO isInput="TRUE" type="STRING">sdfsdf</IN_SPARE_PO_NO><IN_PO_DATE isInput="TRUE" type="STRING">12.12.2555</IN_PO_DATE><IN_ORDER_TYPE isInput="TRUE" type="STRING">23</IN_ORDER_TYPE><IN_REMARKS isInput="TRUE" type="STRING">Remark</IN_REMARKS><IN_SAP_SALE_ORD_NO isInput="TRUE" type="STRING">146546</IN_SAP_SALE_ORD_NO><IN_SAP_SALE_ORD_DT isInput="TRUE" type="STRING">12.12.2555</IN_SAP_SALE_ORD_DT><IN_TOT_VAL isInput="TRUE" type="STRING">2323</IN_TOT_VAL></PR_SPARES_VOR_PO_HDR_UPLOAD><PR_SPARES_VOR_PO_DTL_UPLOAD action="execute"><IN_DEALER_ID isInput="TRUE" type="STRING">efde</IN_DEALER_ID><IN_SPARE_PO_NO isInput="TRUE" type="STRING">sdfsdf</IN_SPARE_PO_NO><IN_PO_DATE isInput="TRUE" type="STRING">12.12.2555</IN_PO_DATE><IN_PART_NO isInput="TRUE" type="STRING">cfgdfw4w</IN_PART_NO><IN_ORDER_QTY isInput="TRUE" type="STRING">2</IN_ORDER_QTY><IN_PENDING_QTY isInput="TRUE" type="STRING">20</IN_PENDING_QTY><IN_RATE isInput="TRUE" type="STRING">2432</IN_RATE><IN_TAX isInput="TRUE" type="STRING">18</IN_TAX></PR_SPARES_VOR_PO_DTL_UPLOAD></statement></ns0:TVS_MST_SPARES_ORDER>
    Please help me out with this error... tell me if more information is required.
    Thanks,
    Audumbar.

    hi mario,
    tell me one thing.... does case metter for stored procedure name? and even for the parameters used in stored procedure?
    i have changed the case of stored procedure name... (its small in Oracle) but have not changed the case of parameters....
    after changing the case also i m getting the following error....
    " Receiver Adapter v2112 for Party '', Service 'BS_ORADEV':
    Configured at 2006-08-16 10:12:14 GMT+05:30
    History:
    - 2006-08-16 14:18:19 GMT+05:30: Error: TransformException error in xml processor class: Error processing request in sax parser: Error when executing statement for table/stored proc. <b>'pr_spares_vor_po_hdr_upload'</b> (structure 'statement'): java.sql.SQLException: ORA-06550: line 1, column 7:
    PLS-00201: identifier <b>'PR_SPARES_VOR_PO_HDR_UPLOAD'</b> must be declared
    ORA-06550: line 1, column 7:
    PL/SQL: Statement ignored "
    Reply me as soon as possible.
    Thanx,
    Regards,
    Audumbar
    Message was edited by: Audumbar Pikle

  • Jdbc - stored procedures

    Please, can anyone show me how to retrieve an array from a stored procedure using JDBC?
    The code below are not working (the exception at bottom). The problem seem to be the third parameter to registerOutParameter, this type do however exist in the database.
    This error occurs also when I use OracleCallableStatement.
    Any help and tips is MUCH appreciated.
    Thanks!
    ++++++++++++++++++
    java.sql.Connection con;
    java.sql.CallableStatement cstmt = con.prepareCall("{call pck_test_array.get_company_array(?)}");
    cstmt.registerOutParameter(1,java.sql.Types.ARRAY, "pck_test_array.app_user_name_text_table");
    cstmt.execute();
    ++++++++++++++++++++++
    This generates the following exception:
    java.sql.SQLException: Fail to construct descriptor: Unable to resolve type: "pc
    k_test_array.app_user_name_text_table"
    at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:114)
    at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:156)
    at oracle.jdbc.dbaccess.DBError.check_error(DBError.java:775)
    at oracle.sql.ArrayDescriptor.<init>(ArrayDescriptor.java:166)
    at oracle.sql.ArrayDescriptor.createDescriptor(ArrayDescriptor.java:89)
    at oracle.jdbc.driver.OracleCallableStatement.registerOutParameter(Oracl
    eCallableStatement.java:162)

    Here is a sample from Metalink on how to
    fetch arrays from pl/sql
    Program Notes
    o This program can be run with any of the three forms of Oracle JDBC driver.
    o Run the script noted in the comments of the program to create the type
    and the procedure that is called.
    o This program uses the most basic method of calling objects,
    via Oracle.sql.STRUCT.
    References
    "Oracle8i JDBC Developers Guide and Reference" (A64685-01)
    Program
    import java.sql.*;
    import java.io.*;
    import java.util.*;
    import java.math.BigDecimal;
    import oracle.sql.*;
    import oracle.jdbc.driver.*;
    public class callInOutStructArray extends Object {
    This program demonstrates how to emulate calling a stored procedure
    with PL/SQL table of record parameters via JDBC. You cannot call a
    PL/SQL table of records parameter directly, however, you can use an
    Object with the same structure as your table of records.
    The Script used to create the procedure in this example is as follows:
    drop type rectab;
    create or replace type rectype as object(col1 varchar2(10),col2 varchar2(10));
    create or replace type rectab as table of rectype;
    create or replace package ioStructArray as
    procedure testproc(iorec in out rectab,orec out rectab);
    end ioStructArray;
    create or replace package body ioStructArray as
    procedure testproc(iorec in out rectab,orec out rectab) is
    begin
    orec := iorec;
    for i in 1..iorec.count loop
    iorec(i).col1 := orec(i).col2;
    iorec(i).col2 := orec(i).col1;
    end loop;
    end testproc;
    end ioStructArray;
    public static void main(String[] args) throws SQLException {
    DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
    // Connect to the database
    Connection conn =
    DriverManager.getConnection ("jdbc:oracle:oci8:@S692815.WORLD",
    "scott", "tiger");
    // First, declare the Object arrays that will store the data.
    Object [] p1recobj = {"FIRST","LAST"};
    Object [] p2recobj = {"SECOND","LAST"};
    Object [] p3recobj;
    Object [] p4recobj;
    // Declare the Object Arrays to hold the STRUCTS.
    Object [] p1arrobj;
    Object [] p2arrobj;
    // Declare two descriptors, one for the ARRAY TYPE
    // and one for the OBJECT TYPE.
    StructDescriptor desc1=StructDescriptor.createDescriptor("RECTYPE",conn);
    ArrayDescriptor desc2=ArrayDescriptor.createDescriptor("RECTAB",conn);
    // Create the STRUCT objects to associate the host objects
    // with the database records.
    STRUCT p1struct = new STRUCT(desc1,conn,p1recobj);
    STRUCT p2struct = new STRUCT(desc1,conn,p2recobj);
    // Initialize the Input array object - to an array of STRUCT Objects.
    p1arrobj = new Object []{p1struct,p2struct};
    // Set up the ARRAY object.
    ARRAY p1arr = new ARRAY(desc2,conn,p1arrobj);
    ARRAY p2arr;
    // Declare the callable statement.
    // This must be of type OracleCallableStatement.
    OracleCallableStatement ocs =
    (OracleCallableStatement)conn.prepareCall("{call iostructarray.testproc(?,?)}");
    // The first parameter is in out so we have to use setARRAY to
    // pass it to the statement
    ocs.setARRAY(1,p1arr);
    // The first parameter is in out, so we have to Register the
    // parameter as well.
    // Note the re use of the TYPE.
    ocs.registerOutParameter(1,OracleTypes.ARRAY,"RECTAB");
    // The second paramter is out, so that has to be registered too.
    // Note the re use of the TYPE.
    ocs.registerOutParameter(2,OracleTypes.ARRAY,"RECTAB");
    // Execute the procedure
    ocs.execute();
    // Associate the returned arrays with the ARRAY objects.
    p1arr = ocs.getARRAY(1);
    p2arr = ocs.getARRAY(2);
    // Get the data back into the data arrays.
    p1arrobj = (Object [])p1arr.getArray();
    p2arrobj = (Object [])p2arr.getArray();
    // Get the data records from each array element (which is of type STRUCT).
    p1recobj = ((STRUCT)p1arrobj[0]).getAttributes();
    p2recobj = ((STRUCT)p1arrobj[1]).getAttributes();
    p3recobj = ((STRUCT)p2arrobj[0]).getAttributes();
    p4recobj = ((STRUCT)p2arrobj[1]).getAttributes();
    // Show the results:
    System.out.println("First Object is now "+p1recobj[0]+" and "+p1recobj[1]);
    System.out.println(" "+p2recobj[0]+" and "+p2recobj[1]);
    System.out.println("Second Object is now "+p3recobj[0]+" and "+p3recobj[1]);
    System.out.println(" "+p4recobj[0]+" and "+p4recobj[1]);
    Sample Output
    First Object is now LAST and FIRST
    LAST and SECOND
    Second Object is now FIRST and LAST
    SECOND and LAST
    Copyright (c) 1995,1999 Oracle Corporation. All Rights Reserved. Legal Notices and Terms of Use.
    null

  • File to JDBC stored procedure

    Hi JDBC gurus,
    I am using the File-XI-JDBC interface in which I am calling a Oracle stored procedure. The parameters I have to send to this SP has one parameter which is a RECORD.
    The input fields which I receive from the File should be send as ONE SINGLE PARAMETER in the stored procedure.
    Is there a way that we can send all these incoming fields into single parameter in the stored procedure?
    Please help.
    Thanks
    Kalyan

    Hi Kalyan,
    You can use XSLT mapping with following function.
    The <xsl:copy-of> element creates a copy of the current node.
    Note: Namespace nodes, child nodes, and attributes of the current node are automatically copied as well!
    Tip: This element can be used to insert multiple copies of the same node into different places in the output.
    Hope it helps,
    Regards,
    Tuhin
    *Please mark useful answers.

Maybe you are looking for

  • RFC to BPM - Error in receiver interface

    Hi everybody, I have created the scenario below. i imported the ZStart_Job rfc from R/3 i created the MI_Start_Abs (abstract and async) - message type is same from ZStart_Job i created the BPM_Job where the send interface is MI_Start_Abs. i configure

  • Further help with regex

    Hi, I want to detect the presence of "fromCharCode" in a String. But only when it is not preceded by "String." and not followed by "(34)". I have already managed to do the "String." with this regex: (?<!string\.)fromCharCode --> uses the negative loo

  • Error shows net price will be negative in pricing proceedure

    Hi experts, While creating purchase order in IS - Retail,  Error shows that "net price will be negative". could any body will be giving suggestions, why it has happened like this. thanks and regards suneel

  • Javascript in Captivate

    Can javascript be added to a click box to close the window. I've tried several scripts that I found online, but none seem to work in either Internet Explorer and Firefox. Any ideas?

  • Weird noises in iTunes 8

    I recently upgraded to iTunes 8 and whenever I switch from "Genius" to "iTunes Store" in the sidebar and there is not music playing at the time, there is a thumping sound that plays through my speakers. Is it just an annoying sound effect that I can'