Need a Tx aware datasource when using CMT with BMP entity beans?

When using Containter-Managed Transactions with entity beans that have
          bean-managed persistence, do I need to use a transaction-aware datasource?
          Thanks,
          Ken Gertsen
          

Hi ad13217 and thanks for reply.
I'm sorry but my code is like this:
javax.naming.Context ctx=new javax.naming.InitialContext();
arguments was an error on copy, but it doesn't work.
Thanks
Fil

Similar Messages

  • Using JDO under BMP entity beans

    I have an entity bean that is a BMP which uses JDO under the hood. The Oc4J document says that "Bean-managed persistence entity beans manage the resource locking within the bean implementation themselves" in the advanced subject chapter. Ok can someone in oracle add an extra line eloborating on that statement ?
    I am stuck in trying to pass a test that can do concurrent modify of an entity bean. I had 2 or more threads trying to modify one single BMP entity bean object concurrently. The database vendor recognizes one bean had the lock and deny locks to any other beans. Who should block the call to the database until one thread releases the lock on the object ? The developer ? J2EE container ? Database ?
    J2EE tenet "Developers are shielded from concurrency and threading issues while implementing business logic" Does that still hold ??
    An object Person's salary value and his benefit information are tried to be modified at the same time by different external system(salary administrator, benefit's administrator). But I dont want the user to see the lock on the object error, but instead I require a pessimistic lock on the BMP. Why does Oc4J not support pessimistic concurrency option for BMP ?

    Kurien,
    If you wish to bring something to the attention of the "Oracle dev team", I suggest you try Oracle's "MetaLink" Web site:
    http://metalink.oracle.com
    It is the official Oracle support Web site.
    These forums are for the Oracle community. Oracle Corporation employees are not obliged to even visit these forums.
    By the way, I am not an Oracle employee.
    Good Luck,
    Avi.
    P.S. For your information, you may find Debu Panda's blogs of help:
    http://radio.weblogs.com/0135826/

  • Need advise for best practice when using Toplink with external transaction

    Hello;
    Our project is trying to switch from Toplink control transaction to using External transaction so we can make database operation and JMS operation within a single transaction.
    Some of our team try out the Toplink support for external transaction and come up with the following initial recommendation.
    Since we are not familar with using external transaction, I would like member of this forum and experts, to help comment on whether these recommendation are indeed valid or in line with the best practice. And for folks that have done this in their project, what did you do ?
    Any help will be most appreciated.
    Data Access Objects must be enhanced to support reading from a TOPLink unit of work when using an external transaction controller. Developers must consider what impact a global transaction will have on the methods in their data access objects (DAOs).
    The following findSomeObject method is representative of a “finder” in the current implementation of our DAOs. It is not especially designed to execute in the context of a global transaction, nor read from a unit of work.
    public findSomeObject(ILoginUser aUser, Expression queryExpression)
    ClientSession clientSession = getClientSession(aUser);
    SomeObject obj = null;
    try
    ReadObjectQuery readObjectQuery = new ReadObjectQuery(SomeObject.class);
    readObjectQuery.setSelectionCriteria(queryExpression);
    obj = (SomeObject)clientSession.executeQuery(readObjectQuery);
    catch (DatabaseException dbe)
    // throw an appropriate exception
    finally
    clientSession.release();
    if (obj == null)
    // throw an appropriate exception
    return obj;
    However, after making the following changes (in blue) the findSomeObject method will now read from a unit of work while executing in the context of a global transaction.
    public findSomeObject(ILoginUser aUser, Expression queryExpression)
    Session session = getClientSession(aUser);
    SomeObject obj = null;
    try
    ReadObjectQuery readObjectQuery = new ReadObjectQuery(SomeObject.class);
    readObjectQuery.setSelectionCriteria(queryExpression);
    if (TransactionController.getInstance().useExternalTransactionControl())
         session = session.getActiveUnitOfWork();
         readObjectQuery.conformResultsInUnitOfWork(); }
    obj = (SomeObject)session.executeQuery(readObjectQuery);
    catch (DatabaseException dbe)
    // throw an appropriate exception
    finally
    if (TransactionController.getInstance().notUseExternalTransactionControl())
         session.release();
    if (obj == null)
    // throw an appropriate exception
    return obj;
    When getting the TOPLink client session and reading from the unit of work in the context of a global transaction, new objects need to be cached.
    public getUnitOfWork(ILoginUser aUser)
    throws DataAccessException
         ClientSession clientSession = getClientSession(aUser);
         UnitOfWork uow = null;
         if (TransactionController.getInstance().useExternalTransactionControl())
              uow = clientSession.getActiveUnitOfWork();
              uow.setShouldNewObjectsBeCached(true);     }
         else
              uow = clientSession.acquireUnitOfWork();
         return uow;
    }

    As it generally is with this sort of question there is no exact answer.
    The only required update when working with an External Transaction is that getActiveUnitOfWork() is called instead of acquireUnitOfWork() other than that the semantics of the calls and when you use a UnitOfWork is still dependant on the requirements of your application. For instance I noticed that originally the findSomeObject method did not perform a transactional read (no UnitOfWork). Has the requirements for this method changed? If they have not then there is still no need to perform a transactional read, and the method would not need to change.
    As for the requirement that new object be cached this is only required if you are not conforming the transactional queries and adds a slight performance boost for find by primary key queries. In order to use this however, objects must be assigned primary keys by the application before they are registered in the UnitOfWork.
    --Gordon                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           

  • Use direct JDBC with CMP entity bean in one transaction

    I am trying to use direct JDBC call with CMP entity bean within a session
    bean method that requires transaction. The problem is that it appears these
    are not in the same transaction. When I use the JDBC call, the CMP entity
    bean update to the DB has not been committed yet.
    We are using Weblogic 5.1 SP6. The DB is Oracle.
    What I do for the JDBC is get a new connection from the pool using weblogic
    jdbc pool driver.
    Any help would be appreciated.
    Patrick

    Hi. You can do JDBC and invoke CMP EJBs and have this all treated
    as one transaction, if your hand-written code explicitly starts
    a JTS transaction, then uses the jts driver or a TxDataSource to
    get the JDBC connection. Then your code can call transactional
    EJBs and their work will be included in the transaction you started.
    Assuming the bean work went OK, and your manual JDBC went OK, you
    can manually commit the UserTransaction at that time. This is 5.1
    talk. For 6.0, with @PC, this may be even easier...
    Joe
    Patrick Shen wrote:
    >
    But if I do that, then they would not be in the same transaction anymore.
    Is there any way to use JDBC with CMP Entity bean in the same transaction?
    Patrick
    "L'artiste" <[email protected]> wrote in message
    news:[email protected]...
    Are you calling all the CMP create in the session Bean ? If so, beforeyou
    make the JDBC call from the session bean, the CMP in 2. should commit. Try
    to set its attribute to TX_REQUIRES_NEW. This way, the calling client will
    block until this transaction is done (committed) before the execution
    continues. There might be some overhead involved in doing so if you are
    anticipating a lot of users.
    "Patrick Shen" <[email protected]> wrote in message
    news:[email protected]...
    What I am trying to do is:
    In a Session bean method -
    1. create a new CMP entity bean (a new row in DB table)
    2. create another new CMP entity bean that uses previous bean as foreignkey
    3. use JDBC to update the row just created
    And all these 3 calls have to be in one transaction.
    Thanks,
    Patrick
    "L'artiste" <[email protected]> wrote in message
    news:[email protected]...
    Can you give a little bit more information?
    Do you have methods in your session bean that creates this CMP entitybeans?
    It looks like
    you might wanna try to change the isolation level to
    TRANSACTION_READ_COMITTED
    to preven dirty_read.
    "Patrick Shen" <[email protected]> wrote in message
    news:[email protected]...
    I am trying to use direct JDBC call with CMP entity bean within a
    session
    bean method that requires transaction. The problem is that it
    appears
    these
    are not in the same transaction. When I use the JDBC call, the CMP
    entity
    bean update to the DB has not been committed yet.
    We are using Weblogic 5.1 SP6. The DB is Oracle.
    What I do for the JDBC is get a new connection from the pool usingweblogic
    jdbc pool driver.
    Any help would be appreciated.
    Patrick
    PS: Folks: BEA WebLogic is expanding rapidly, with both entry and advanced positions
    for people who want to work with Java, XML, SOAP and E-Commerce infrastructure products.
    We have jobs at Nashua NH, Liberty Corner NJ, San Francisco and San Jose CA.
    Send resumes to [email protected]

  • How do you stop needing to verify email password when using yahoo.att with Mac Mail

    How do you stop needing to verify email password when using yahoo.att with Mac Mail?

    Nevermind, I fixed it (I think).  I went into Settings | Accounts & Sync and found Yahoo at the bottom of the list (alphabetically).  I selected it and it had an optiion to delete the account, which I did.

  • Best practice when using Tangosol with an app server

    Hi,
    I'm wondering what is the best practice when using Tangosol with an app server (Websphere 6.1 in this case). I've been able to set it up using the resource adapter, tried using distributed transactions and it appears to work as expected - I've also been able to see cache data from another app server instance.
    However, it appears that cache data vanishes after a while. I've not yet been able to put my finger on when, but garbage collection is a possibility I've come to suspect.
    Data in the cache survives the removal of the EJB, but somewhere later down the line it appear to vanish. I'm not aware of any expiry settings for the cache that would explain this (to the best of my understanding the default is "no expiry"), so GC came to mind. Would this be the explanation?
    If that would be the explanation, what would be a better way to keep the cache from being subject to GC - to have a "startup class" in the app server that holds on to the cache object, or would there be other ways? Currently the EJB calls getCacheAdapter, so I guess Bad Things may happen when the EJB is removed...
    Best regards,
    /Per

    Hi Gene,
    I found the configuration file embedded in coherence.jar. Am I supposed to replace it and re-package coherence.jar?
    If I put it elsewhere (in the "classpath") - is there a way I can be sure that it has been found by Coherence (like a message in the standard output stream)? My experience with Websphere is that "classpath" is a rather ...vague concept, we use the J2CA adapter which most probably has a different class loader than the EAR that contains the EJB, and I would rather avoid to do a lot of trial/error corrections to a file just to find that it's not actually been used.
    Anyway, at this stage my tests are still focused on distributed transactions/2PC/commit/rollback/recovery, and we're nowhere near 10,000 objects. As a matter of fact, we haven't had more than 1024 objects in these app servers. In the typical scenario where I've seen objects "fade away", there has been only one or two objects in the test data. And they both disappear...
    Still confused,
    /Per

  • Display "blank-out" when using Maya with a GF 7800?

    I have a problem where my LCD display occasionally blinks off for about 5-10 seconds when using Maya with a scene displaying about 100,000 polys. Has anyone else encountered this? This only seems to happen when I am quickly rotating the camera in a grey shaded perspective panel?
    My LCD is a Dell 20" LCD (set at 1600x1200) connected to a Geforce 7800 in a Quad G5 with 4.5GB of ram.
    I have never seen this issue before in Maya (I have been using Maya for years, on other machines), so I suspect it is hardware or driver related?

    OK, have completed several tests. I definately seems that the my Geforce 7800 has problems when running some applications. I wonder if anyone else has encountered this problem?
    The easiest way to cause the display to momentarily shut off is to use Maya in the full screen perspective camera window in shaded mode. Proceed to rapidly move a 20,000 poly model (or greater) both zooming and rotating (the polys need to fill the entire screen and shake the mouse).My display (Dell 20" 2001fp) will blink-off for a few seconds. Of course, this in not "normal" work flow, but I have this issue happening when working normally, it can sometimes take time to occur.
    I have tried the Geforce 6600 (256mb ver) and this does not occur with that video card. I have tried several mice both wired and wireless, plus changed the Energy Saver options for Processor performance (from comments I read on Macintouch.com). The problem is consistent to my Geforce 7800. This problem will also occur in Photoshop CS, by moving images and resizing, but I found it much harder to induce.

  • When using iPhone with Ford automobiles' Sync, the connection drops each time the ignition is shut off. In order to restore, the bluetooth must be turned off on the iphone, then restarted. Any suggestions?

    When using iPhone with Ford Automobiles' SYNC, the connection drops each time the ignition is shut off. To restore, you must turn off the bluetooth on iPhone, then restart each time. Any suggestions?

    There is an update avaialbe for Ford systems to correct bluetooth problems. You need to update your system.

  • When using Numbers with iCloud, a new version of the spreadsheet is created even when no reisions have been made. Why is this, and how do I make it stop?

    When using Numbers with iCloud, a new version is created every time I make a change. I do not want all these revised documents. When I change a document, I commit to that change. How do I shut off this multiple-revision feature of Numbers being pushed to iCloud.
    Also....
    When using Numbers with iCloud, a new version of the spreadsheet is created even when no revisions have been made. Why is this, and how do I make it stop?
    My files are growing.

    Your plugins list shows outdated plugin(s) with known security and stability risks.
    # Java Plug-in 1.5.0_11 for Netscape Navigator (DLL Helper)
    # Adobe Shockwave for Director Netscape plug-in, version 11.0
    Update the [[Java]] and [[Shockwave|Shockwave for Director]] plugin to the latest version.
    See
    http://java.sun.com/javase/downloads/index.jsp#jdk (you need JRE)
    http://www.adobe.com/shockwave/welcome/

  • When using pdfFactory with Firefox, why are the colors on the pdf not correct?

    The colors are vastly different when using pdf Factory with Firefox. When using pdfFactory with IE, they are both the same.

    There doesn't seem to be a one-size-fits-all answer, because what works for one printer doesn't necessarily work for another, and I don't have your printer so I can't advise on specifics...
    However, perhaps we can discover a set of settings that will work...
    If you File - Print, choose Photoshop Manages Colors, in the Printer Profile section do you see profiles specific to your printer (e.g., with the name Kodak in them)?
    If so, choose one of them that seems appropriate given the paper you're using.
    If not, try choosing sRGB IEC61966-2.1.
    Now, before you continue, press the [Print Settings...] button.  This brings up the printer driver dialog.  You may have to go through [Advanced] buttons or whatever, but what you're looking to do here is to disable the printer driver's color management logic.  In other words, if you can find a color-management / ICC profile handling section, set it to "no color management" or equivalent.  OK back out to Photoshop's print dialog, then press [Print].
    The key here is that if Photoshop manages the color transforms, the printer driver should not be set to do so - or vice versa.
    If you're presented with the printer driver's dialog again, double check that the settings you chose above are still set, for good measure, and try a test print.
    -Noel

  • Only 274 mails are coming when using pop3 with java mail

    Only 274 mails are coming from GMAIL when using pop3 with java mail. but there are more than 3000 mails.
    I'm not getting the reason, code is given below:
    public static void main(String[] args) {
            // SUBSTITUTE YOUR ISP's POP3 SERVER HERE!!!
    //        String host = "pop.bizmail.yahoo.com";
    //        final String user = "[email protected]";
    //        final String password = "xxx";
            String host = "pop.gmail.com";
            final String user = "gauravjlj";
            final String password = "xxx";
            String subjectSubstringToSearch = "Test E-Mail through Java";
            try {
                 Properties prop = new Properties();
                prop.setProperty("mail.pop3.socketFactory.class",
                                            "javax.net.ssl.SSLSocketFactory");
                prop.setProperty("mail.pop3.socketFactory.fallback", "false");
                prop.setProperty("mail.pop3.port", "995");
                prop.setProperty("mail.pop3.socketFactory.port", "995");
                prop.put("mail.pop3.host", host);
                prop.put("mail.store.protocol", "pop3");
                Session session = Session.getDefaultInstance(prop);
                Store store = session.getStore();
                System.out.println("your ID is : "+ user);
                System.out.println("Connecting...");
                store.connect(host, user, password);
                System.out.println("Connected...");
                // Get "INBOX"
                Folder fldr = store.getFolder("INBOX");
                fldr.open(Folder.READ_ONLY);
                int count = fldr.getMessageCount();
                System.out.println(count  + " total messages");
                // Message numebers start at 1
                for(int i = 1; i <= count; i++) {
                                            // Get  a message by its sequence number
                    Message m = fldr.getMessage(i);
                    // Get some headers
                    Date date = m.getSentDate();
                    Address [] from = m.getFrom();
                    String subj = m.getSubject();
                    String mimeType = m.getContentType();
                    System.out.println(date + "\t" + from[0] + "\t" +
                                        subj + "\t" + mimeType);
                // Search for e-mails by some subject substring
                String pattern = subjectSubstringToSearch;
                SubjectTerm st = new SubjectTerm(pattern);
                // Get some message references
                Message [] found = fldr.search(st);
                System.out.println(found.length +
                                    " messages matched Subject pattern \"" +
                                    pattern + "\"");
                for (int i = 0; i < found.length; i++) {
                    Message m = found;
    // Get some headers
    Date date = m.getSentDate();
    Address [] from = m.getFrom();
    String subj = m.getSubject();
    String mimeType = m.getContentType();
    System.out.println(date + "\t" + from[0] + "\t" +
    subj + "\t" + mimeType);
    Object o = m.getContent();
    if (o instanceof String) {
    System.out.println("**This is a String Message**");
    System.out.println((String)o);
    else if (o instanceof Multipart) {
    System.out.print("**This is a Multipart Message. ");
    Multipart mp = (Multipart)o;
    int count3 = mp.getCount();
    System.out.println("It has " + count3 +
    " BodyParts in it**");
    for (int j = 0; j < count3; j++) {
    // Part are numbered starting at 0
    BodyPart b = mp.getBodyPart(j);
    String mimeType2 = b.getContentType();
    System.out.println( "BodyPart " + (j + 1) +
    " is of MimeType " + mimeType);
    Object o2 = b.getContent();
    if (o2 instanceof String) {
    System.out.println("**This is a String BodyPart**");
    System.out.println((String)o2);
    else if (o2 instanceof Multipart) {
    System.out.print(
    "**This BodyPart is a nested Multipart. ");
    Multipart mp2 = (Multipart)o2;
    int count2 = mp2.getCount();
    System.out.println("It has " + count2 +
    "further BodyParts in it**");
    else if (o2 instanceof InputStream) {
    System.out.println(
    "**This is an InputStream BodyPart**");
    } //End of for
    else if (o instanceof InputStream) {
    System.out.println("**This is an InputStream message**");
    InputStream is = (InputStream)o;
    // Assumes character content (not binary images)
    int c;
    while ((c = is.read()) != -1) {
    System.out.write(c);
    // Uncomment to set "delete" flag on the message
    //m.setFlag(Flags.Flag.DELETED,true);
    } //End of for
    // "true" actually deletes flagged messages from folder
    fldr.close(true);
    store.close();
    catch (MessagingException mex) {
    // Prints all nested (chained) exceptions as well
    mex.printStackTrace();
    catch (IOException ioex) {
    ioex.printStackTrace();
    Please tell me.
    Thanks                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

    Is it possible that GMail only allows access to untagged emails via POP3? Or only to emails from the last x days?
    POP3 is the older email retrieval protocol (IMAP4 is the more current one) and only has very limited support for folders (or anything but a single inbox, really). It's quite common that POP3 only allows access to a subset of all emails stored by a provider.

  • How to store a layout, when using CL_SALV_TREE with a container?

    Hello,
    I'd like to use an object of type CL_SALV_TREE, that is placed on a custom container (and therefore not displayed in fullscreen).
    But how do I get the functionality to store a layout, when using CL_SALV_TREE not in fullscreen mode? If you use it in fullscreen mode, you just have to define the function code in your gui status and everything is ok.
    But since I want to place my CL_SALV_TREE on a custom container, that method does not work. If I call <my_salv_tree>->get_functions( ) it returns a table, that holds just six entries. So, the appropiate function for storing a layout does not seem to be in the default set of functions, when using CL_SALV_TREE with a custom container. But how do I activate this function?
    I already call the functions get_layout() and set_key() - so that shouldn't be the problem. Or is just not possible to use CL_SALV_TREE on a custom container and have the possibility to store layouts?
    Kind regards, Lars

    Hello,
    I'd like to use an object of type CL_SALV_TREE, that is placed on a custom container (and therefore not displayed in fullscreen).
    But how do I get the functionality to store a layout, when using CL_SALV_TREE not in fullscreen mode? If you use it in fullscreen mode, you just have to define the function code in your gui status and everything is ok.
    But since I want to place my CL_SALV_TREE on a custom container, that method does not work. If I call <my_salv_tree>->get_functions( ) it returns a table, that holds just six entries. So, the appropiate function for storing a layout does not seem to be in the default set of functions, when using CL_SALV_TREE with a custom container. But how do I activate this function?
    I already call the functions get_layout() and set_key() - so that shouldn't be the problem. Or is just not possible to use CL_SALV_TREE on a custom container and have the possibility to store layouts?
    Kind regards, Lars

  • There is no way to see who is on line when using facebook with iPad 2

    There is no way to see who is on line when using facebook with iPad 2 why is that?

    I'm guessing you mean for FB Chat? Try the app Friendly.

  • Is there a way that when using airplay with power point the ATV does not sleep/screen saver frequently

    s there a way that when using airplay with power point the ATV does not sleep/screen saver frequently???

    I have done this for several Titles, using Photoshop and a Layer Mask, that gets "erased," revealing the letters. My Titles were of "handwriting with chalk" on a blackboard, so I could keep the edge of that Layer Mask, looking more like the "chalk." Photoshop also makes it easy to output Layer Comps for each "step" in the handwriting process. IIRC, I did about 5 Frames per Layer Comp on Import, but do not recall if I used an extremely short Cross-Dissolve Transition between those - I intened to do so, but just do not remember if I liked that, or went with just the Still Images? Will try to find that animation, and maybe create a full tutorial of the process. In my case, I also added an SFX of chalk on a chalkboard.
    If you have Photoshop, it's really quite easy to pull off.
    Now, I do not know if Photoshop Elements has Layer Masks yet, which make it so very easy to accomplish. One could do it backward, where the Text Layer gets Erased, and then one would have their full Image as the last in the sequence, and then the next would have a little bit of the Text removed, then a bit more, then a bit more - going backward, until the "writing surface" is clean. One could also do this with a Transparent Background, so that one saw the Video below, and no actual "writing surface" visible.
    Good luck,
    Hunt

  • Using Composite keys in Entity Beans

    Hi, I am trying to develop a test application with two entity beans, (1) OrderBean (key is a string called order_no) and (2) LineBean (key is order_no and an integer line_no) using CMP 2.0. Relationship between OrderBean to LineBean is 1 to many. I created a primary key class for LineBean called, LinePK with both order_no and line_no as the public members. My home interface for LineBean has the following three finder methods:
    public java.lang.Object findByPrimaryKey(LinePK lkey);
    public Collection findByOrder(String order_no);
    public Collection findByProduct(String product_id);
    I could provide sql for the OrderBean which has only one field(order_no) as primary key, but I don't know how to code appropriate SQL for the finder methods of LineBean involving a user defined primary key class (in my case LinePK with order_no and line_no). I am trying to deploy this application in J2EE RI server, but getting deployment errors saying invalid return types for the finder methods. In the deploytool I provided the primary key class for LineBean as java.lang.Object with no primary key field name. Any help in this matter with sample sql code is greatly appreciated. Thanks !!!

    Some things to consider:
    - Your findByPrimaryKey in the Remote interface needs to have the remote interface as return type
    - The implementation of the finder needs to have your primary key class as return type
    - If you're using CMP 2.0, you need to specify the search criteria as EJB QL
    Using CMP 2.0, you don't code findByPrimaryKey at all, all you need is the EJB QL for findByOrder/findByProduct in the deployment descriptor. The EJB QL for findByOrder would look like:
    select Object o from Line where o.order_no = ?1If you use BMP, you would code the findByPrimaryKey implementation like this:
    public LinePK ejbFindByPrimaryKey(LinePK pk) throws FinderException {
      String sql = "select order_no from line_table where line_no=? and order_no=?";
      InitialContext ic = new InitialContext();
      Object obj = ic.lookup("datasourcename");
      DataSource ds = (DataSource)PortableRemoteObject.narrow(obj, DataSource.class);
      Connection conn = ds.getConnection();
      try {
        PreparedStatement stmt = conn.prepareStatement(sql);
        try {
          stmt.setInteger(1, pk.line_no);
          stmt.setInteger(2, pk.order_no);
          ResultSet rs = stmt.executeQuery();
          if (!rs.next())
            throw new ObjectNotFoundException("not found: " + order_no + "." + line_no);
          return pk;
        finally {
          stmt.close();
      finally {
        conn.close();

Maybe you are looking for

  • Having issues with AA8 with freezing and shutting down.

    After a successful install, this app freezes upon starting at the splash screen "Getting Started with Adobe Acrobat...". After about 3 minutes it will unfreeze for about 3 secs. at which point it will shut down without an error message. During the ti

  • Blue tooth will not stream

    I got a New LG G3 on the 18th of November. It never streamed via Bluetooth properly. it randomly stops playing or crackles or disconnects. I contacted Verizon tech support..The first thing was to give me Number to Lg.. Well it is like this , the phon

  • Tax Departure Country issue

    Hi, We have following situation: sales org in country NL with plants in country BE and country GB. We do not use plants abroad as this is currently not an option. When a sales order is created for plant BE (delivering plant BE), the tax departure cou

  • How can i reactivate a usb peripheral on mac osx 10.6.8

    Hi i'm a frenchman, i'd lite to know how can i reactivate a usb peripheral wich has been deactivate by the computer because it run most energy, thanks.

  • Automated regression tests on Oracle*Forms

    Hi all, We're looking for a toolset that allows automated regression tests (record/playback) on an Oracle Forms GUI. Something like QuickTest*Pro (previously Winrunner). Anybody having experience with this ? Thanks for sharing it.