Plugins with persistence mechanism

Hi,
I have following problem with the current plugin mechanism of our application:
In general, plugins can easily be integrated into the application. But some plugins need some sort of persistence mechanism (i.e., some database tables). And here the problem arises. The application itself uses an Oracle database user with a standard datamodel for persistence purposes.
Until now the additional tables for the optional plugins were integrated into that standard datamodel. In consequence, the standard datamodel grew in size with every possible plugin. In addition, the main application got dependent on the optional plugins. If a plugin needs a change in its database tables (e.g., a new column) then the standard datamodel has to be changed, too.
The first solution that came to my mind was that each plugin gets its own database user. So the main applications is totally unaware of its plugins (as it should be). So far so good. The tricky thing is that the database tables of the plugin reference tables of the standard datamodel. Oracle allows SELECTs and foreign key constraits accross database users, so there is no problem at first glance. But taking a closer look, following problems arise:
1) how to connect the data from the plugin tables with the data of the standard datamodel tables in my plugin code (in an efficient way because the tables contain lots of data)
2) data changes of the standard datamodel tables can trigger data changes in the plugin tables (= some specific data operations must be performed on the plugin tables)
I would be very thankful for any suggestions how to solve these two problems best. Or perhaps is there a completely different solution to the whole plugin problem?
I searched the internet but found nothing about this sort of plugin problem - are there any existing 'standard' solutions?
Thanks
Werner

Have the plugins provide callback functions that are called from the core system and take care of the creation of the SQL, provide a list of parameters in the correct order, and read out a resultrow (returning an Object per row).
The core application can handle the rest.
Similar for other SQL operations if needed.

Similar Messages

  • A suggestion with persistence mechanism

    Hello there!
    I am facing for the 1st time in my life the problems of projecting and developing an application using "serious" OO analysis and design within the Rational Unified Process..
    What I have to do for the final exam of my course is a web application which has to respect the MVC pattern (or anyway the logical separation between entity-control-boundary classes) with JSP...
    Following this article http://www.ibm.com/developerworks/rational/library/content/RationalEdge/aug04/5670.html
    and above all the picture #11 (http://www.ibm.com/developerworks/rational/library/content/RationalEdge/aug04/5670_fig11l.gif )i arrived to draw this sequence diagram for the retrieve task of persistency architectural mechanism:http://img117.imageshack.us/my.php?image=persistenceretrievepc3.gif
    Here the Client is meant to usually be a Control class which talks to the ObjectFactory in order to get an istance of a PersistentObject (eg: User) stored in the DB with a precise 'key' (eg: primaryKey).
    Today I wanted to transform this seq. diagr. in Java code and couldn't solve the following problem: how to manage the fact that the make() method of ObjectFactory has to receive the name of a persistentclass (eg User or Item or whateverelse) and then starting the sequence of operations that will bring to an object of that type instanced with the values retrieved in the DB? I thought I should use something like this:
    public Object make (String persistentClassName, String searchKey) throws ClassNotFoundException, InstantiationException, IllegalAccessException{
              Object PersistentClass = Class.forName(persistentClassName).newInstance();
              String DBClassName= "DB"+persistentClassName;
              Object DBClass = Class.forName(DBClassName).newInstance();
              //.... return PersistentClass;
         }but how could I call a method on an Object object (something like DBClass.retrieve() is not possible!)?
    Do you have other ideas on how to implement this mechanism and above all the ObjectFactory class?
    Do you know some Case Study available somewhere on internet?
    I hope that a "Saint" will help me!! :)
    thanks a lot since now!
    BYE

    hello again!
    I thought again and again about this mechanism and honestly i agree 100% with you when you suggest not to bite off more that i can chew: I'm getting really stressed by this university project!:)
    Today i watched also what is written about the DAO pattern here: http://java.sun.com/blueprints/corej2eepatterns/Patterns/DataAccessObject.html
    What i finally decided to do looks similar to this:
    http://img505.imageshack.us/my.php?image=modellodesignlf1.gif
    Of course this is a simplified diagram just to let you understand that the ObjectFactory has a member of type DAOClass which will be istantiated to the proper DAOClass type... In last analyisis the ObjectFactory will use always and only the retrieve() method of the interface to provide its clients with an object of a certain kind, isn't it?
    Indeed, a generic ClientClass can use every DAOClass it needs.. I thought that every DAO Should have methods to access data typical of the related business class (entity), is it right? (I could have added also a "proxy" class like DAOFactory, with methods getDAOUser() etc, but I will do if I have time..)
    What I still cannot really decide is:
    1) Who are the ClientClass? Can e.g. a User call directly its corresponding DAOClass to get its attributes istantiated from the DB? I know somebody would say: Check the DTO pattern, but i honestly would like not to "bite off" too much and at the same time do something which respect principles of good (even if not perfect) Design...
    2) I read in the sun webpage mentioned above (DAO) that the DAO can have methods like selectCustomersRS() which returns a resultSet. This is very useful when you need to retrieve all the customers eg to show a list in a boundary (JSP in my case). My question is: who should have the ability to parse this resultSet in order to print a table containing the records read from the DB?
    I am using an architecture where a JSP page has a related bean which deals with the form data (I consider the couple jsp+bean a boundary), then the bean has a related Controller (Java, no Servlet and that is why i have 2 files as a boundary, the professor allowed us..:))...
    3) Directly related to the 2nd: is it possible to merge the controllers in a way that, instead of being tied to their use cases (I have things like: InsertBill.jsp->InsertBillBean.java->C_InsertBill.java and then the various entity classes) they are responsible for conceptually related actions (eg: C_People, C_Bills etc)?
    Again thanks a lot!
    Bye

  • Problem with persistence in Generic Sync application

    Hi:
    We are developing an application which runson SAP Mi 2.5, SP 18,
    Windows Mobile 5.0 and Generic Sync for PDAs.
    We need persistence in our application. We tried with persistence API but
    we found a problem and we send a message to SAP. Until we can solve
    this issue we must implement persistence in other way to satisfy our customer requierements
    Since now,we have implemented persistence with files but the performance of this solution does not meet our customer requirements (the search of data in the PDA is very slow).
    We are thinking in another solution, which consists on using
    Syncbos.Using this alternative, before making a generic sync, and
    executing the code shown below:
    SmartSyncRuntime.getInstance().getSyncBoDescriptorFacade
    ().getAllSyncBoDescriptors()
    the returned syncBOS are those which I have defined in XML. On the
    contrary, after making a generic sync, executing the same code, the
    returned syncbos ARE NOT those whic I have defined in XML. The only
    return that I get is the MIAUTH.
    Any other ideas?
    Thanks
    Kind Regards

    hi satur,
    there are some things to take care if you want to use the persistence layer of the
    SmartSync layer from your GenericSync app.
    first, you have to let the MI client think that your application is using the
    SmartSync functionality. this can be achieved by just including a dummy metadata
    meRepMeta.xml file in the war archive during the deployment process. once the
    MI client framework sees this during the installation, it will set a flag on the MSD
    that your app is a smartsync.
    second, if your app is considered a smartsync, MI will generate the delta request
    and upload messages for your data if ever you have your SyncBo defined in the
    metadata. Since you don't want such functionalities to be ON, i would suggest to
    mark all your SyncBo as local ones; i.e. using attributes suppressDownload=true
    and suppressUpload=true. this way, the MI framework will skip creating the requests
    and delta upload messages for your app during the synchronization process.
    third, your application has to have the syncEventListener implementation to get
    notification when the Sync button (or event) was initiated. if you don't want your
    app to be notified, you may just add synchronization button within your application
    that will call your data manager to prepare your containers (i.e. retrieving the newly
    inserted syncbo, modified syncbos and the list of deleted ones -> genericSync
    containers) and to call the synchronizeWithBackend method.
    fourth, you need to have the inboundProcessor that will parse your data and insert
    them a SyncBo into your local database.
    having tried this but i guess it might work...
    regards
    jo

  • Acrobat 10.1.7 crash by loading plugin with using clr

    Hi,
    I have develop some plugins using Acrobat SDK with CLR, specified /clr option.
    But these plugins causes application crash of Acrobat X, 10.1.7, when trying to close the application.
    Simply plugin with /clr option, not loading CLR dynamically, also causes crash of Acrobat.
    Please tell me how to avoid this problem.
    Regards.

    Some people seem to have succeeded with this approach, but it seems unnatural and prone to difficult to solve problems. I believe plug-in programmers need to grasp the nettle and learn how to make native UIs (i.e. using C or C++ or a native widget toolkit). Yes, this is a large and complex diversion, but there are times to give up trying to put in nails with a screwdriver, and buy a hammer.

  • Is it possible to create a 'General' plugin with C++ SDK?

    The SDK mentions that we can create 'Automation', 'Export', etc plugins with C++? Do these types have their limitations? For example, can't an 'Export' plugin access the whole API exposed to an 'Automation' plugin? Or is the only difference being shown in different sections in the menus?
    What i need is to build a general-purpose plugin that might have to use some export functionality along with selection and 3D features.
    Thanks!

    The short answer is yes, in addition to their location under different sections in the PS menu, each plugin has it's own internal limitations, sequence of invocation etc. The closest you can get to the "general purpose" plugin is an automation plugin as it can be triggered upon various events and can also invoke other plugins, A common approach when developing a plugin with mixed functionality is to have a main "dispatcher" automation plugin that either invokes other plugins as helpers (e.g. a hidden filter to process pixel data) or is invoked by other plugins either upon the events or via an exported suite. You may to browse the Automation examples in the SDK samplecode folder.
    I would also suggest looking into the "Plugin modules" section of the SDK documentation - it should have the information you need in terms of structure, limitations etc The FAQ section is also worh reading.

  • How to use third party plugin with FCP, I'm lost...

    Hello,
    I need informations about how to use plugins with FCP.
    I do edit mostly classical concerts. I'd like to do basic audio post prod, without swaping between Soundtrack and FCP.
    I need two simple things : add reverb (the built in reverb is really bad), and enhancer. So I looked for specialised third party audio plugins, but I couldn't manage to find something that work for me...
    - Do FCP support VST plugins ? How to install them ?
    - I tried a few audio units plugins. It works, but I couldn't get a friendly visual interface, like VST effects racks. Is it possible in FCP ?
    - does anybody know a good reverb plugin with a friendly interface compatible with FCP ?
    Please help, I'm lost !
    Emmanuel

    I need two simple things : add reverb (the built in reverb is really bad), and enhancer.< </div>
    What you NEED is a better recordist at the concert, someone who understands the peculiarities of your specific video deliver plans.
    Soundtrack Pro is right up there with Motion in its impossible-to-understand interface paradigm shift away from industry standard tools. However, if you are in the position of being a sound editor, you must find a tool that works for you. STP might not be the one, certainly isn't for me. You could always try Logic. Yeah, good luck with THAT.
    bogiesan

  • Photoshop Layout plugin with Canon IPF 6450- (File- Automate- ImagePrograf Layout plugin) for Canvas wrap in OSX9.4-Stop responding. Someone could Help? Thank-you.

    Photoshop Layout plugin with Canon IPF 6450- (File->Automate->ImagePrograf Layout plugin) for Canvas wrap in OSX9.4-Stop responding. Someone could Help? Thank-you.

    Hi blabla12345,
    (untested and without warranty)
    replace this line:
    const sSaveCUBE = "CUBE";
    with this:
    const sSaveCUBE = "cube";
    Have fun

  • Is it possible to develop CS6 plugins with XCode 6 on Yosemite?

    Is it possible to develop CS6 plugins with XCode 6 on Yosemite?
    I have the CS6 SDK and sample code but nothing will build.
    My system is:
      OS X 10.10
      Model Name: Mac Pro
      Model Identifier: MacPro6,1
      Processor Name: 6-Core Intel Xeon E5
      Processor Speed: 3.5 GHz
      AMD FirePro D500
    -Allan

    Did you have any luck with that?

  • Flash Builder 4 plugin with eclipse 3.6

    Hi all,
    Previously I have used the flash builder 4 plugin with Zend Studio 7.2 (eclipse 3.4) and it worked flawlessly.
    I have now upgraded to Zend Studio 8.0 (eclipse 3.6) and the Flash Builder installer complains that the 'dropins' folder does not exist. I force the installation to continue, and as expected, Flash Builder did not integrate with Zend Studio.
    Does anyone have any tips as to how I can get Flash Builder 4 working in eclipse 3.6?
    Thank you!

    I experimented with the latest Zend Studio 8 trials on both platforms yesterday, and it looks a little different depending on which platform you're using:
    On OS X, because Zend Studio is now contained entirely within the app bundle, it's tricky navigating to the proper eclipse folder with our Plug-in Utility. As it turns out, the Zend dropins folder does exist if you look down low enough:
    /Applications/Zend Studio.app/Contents/Resources/Java/dropins
    When I typed that path into the Burrito Plug-in Utility manually, it found the dropins folder, and proceeded to install the link without complaint. However, the Zend dropins folder is not working properly on OS X either, as already found on Win, so it's not using the link.
    On Win, Zend Studio 8 doesn't include the dropins folder in the first place, as noted earlier. Apparently, Zend doesn't have its dropins folder enabled on either Mac or Win.
    To see if this problem is specific to dropin links, I downloaded the latest Orbit plugins from eclipse.org and tried adding those directly to the Zend dropins folder, instead of using a link. Zend doesn’t appear to recognize them either.
    I'll check with our contact at Zend to see what happened.
    -Chris

  • Running Arch from a live USB with persistence, on an intel Atom tablet

    Hello,
    I may have bitten off more than I can chew here. I am not a noob to linux, but I am a noob to Arch. I have found a few resources around but none of them quite match with what I want to do, and as such I don't want to overcomplicate what I'm doing by following instructions geared towards other objectives (such as performing a full install on a tablet).
    The title I think captures it, but I will just state again what it is I want to do in a little bit more detail. I have a 2-in-1 tablet (an acer switch 10, if anybody cares) with an intel Atom processor which runs windows 8.1. I don't want to install Arch linux to the tablet, but rather have a USB with persistence that I can just plug in when I want to boot into Arch rather than windows. I've done this with several linux distros on my standard laptop, but never with Arch and never to run on a tablet. Unfortunately, I think this is made harder than it needs to be by the fact that I don't have a functioning normal laptop at the moment - if I did I would simply do all of this on there, from a linux distro. But as it happens, I only have this tablet, and it is only running windows.
    I created the live USB using the software Rufus, and it boots correctly on my friend's laptop, however I have been having trouble getting it to boot from my tablet. There seem to be several things in the way of this, and I am slowly making my way through them. Firstly, I have disabled secure boot, and placed a UEFI 32-bit bootloader into the appropriate folder on the USB drive. So far this has only allowed me to avoid the automatic boot into windows that I don't experience on a normal laptop, instead taking me to the bootloader, but I don't yet know what to do from there.
    So, this probably isn't entirely relevant or specific to Arch, but since I am using Arch I thought I would post this here (since more Arch specific stuff might come up as I get further). If anybody has any insight to help me out, that would be great. Otherwise, I will just continue and post any progress I have made here, and maybe this will help the 5 other people in the world who are trying to install Arch to a live USB, from windows, using only an atom-CPU tablet .
    Last edited by phulcq (2014-08-18 17:00:26)

    SUCCESS! Just loaded up flash media encoder and connected to
    one of my flash streaming servers. The little 9" laptop handled it
    beautifully. This is on the battery, wireless internet. I did
    notice one thing though, I set the FPS to 30, and the highest it
    would go was 15-16. Not sure if its throttling the fps because of
    battery power, the ~36mbps wireless connection or what, but I'm
    happy with the results! I'll try again on the battery and plugged
    into the gigabit eithernet we have here at the office and report
    the results. Check out the images.
    The specs of the laptop are:
    Dell Inspiron 9"
    Windows XP Pro SP3
    Intel® Atom Processor® N270 (1.6GHz/533Mhz FSB/512K
    cache)
    1gb ram
    16gb solid state drive
    1.3mp camera
    http://www.bluefocusmedia.com/test_stream/intel_atom_streaming001.jpg
    http://www.bluefocusmedia.com/test_stream/intel_atom_streaming002.jpg
    http://www.bluefocusmedia.com/test_stream/intel_atom_streaming003.jpg

  • Plugin with similar functionality to snapshot tool

    I would like to develop a plugin with functionality similar to the Acrobat snapshot tool. I'd like to provide a method for the user to select a rectangular region, and capture an image of that region to the clipboard, which is exactly what the snapshot tool does (I also want to add some features not provided by the snapshot tool once this is working). I've reviewed the SDK samples, and I'm not sure how to get started. Is this a special case of a Selection Server? Which API methods allow me to get the image of the rectangular selection, rather than iterating through PDF elements contained within?
    Thanks!

    Hi Leonard,
    Thanks for the quick reply! Let me break down the areas I'm still unclear on into a couple of questions:
    (1) What is the best way to allow the user to draw a rectangular selection? Are there some callback functions I should implement to allow the user to click and drag a marquee, or do I have to handle the code to draw the rectangle myself? I'm wondering, for example, if I need to implement the drawing code as part of a custom AVTool DoClickProcType callback, or if there is a better, built in way to get a rectangular area that a user has drawn (given that this operation is common to many tools).
    (2) Once I have the rectangular selection coordinates from #1 above, how do I render it to an offscreen bitmap as you suggested? Is there a function in the API that allows me to do this?
    Thanks again!
    Steve

  • [svn:osmf:] 14272: Integrate Akamai plugin with latest changes.

    Revision: 14272
    Revision: 14272
    Author:   [email protected]
    Date:     2010-02-18 22:14:21 -0800 (Thu, 18 Feb 2010)
    Log Message:
    Integrate Akamai plugin with latest changes.
    Modified Paths:
        osmf/trunk/plugins/akamai/AkamaiBasicStreamingPlugin/com/akamai/osmf/net/AkamaiNetLoader. as
        osmf/trunk/plugins/akamai/AkamaiBasicStreamingPlugin/com/akamai/osmf/net/AkamaiNetStream. as

    Hi Geoff,
    you run into a known bug:
    https://bugs.adobe.com/jira/browse/ST-271
    You can track it to see when it will get fixed (I don't have a time frame for that).
    S.

  • How can I use One Plugin with all his outputs on the region

    Hi All
    In Cubase I have a PlugIn Manager and when I have a Plugin like Omnisphere with 8 outputs I can route each output on one sequencer region.
    Can I do This as same in Logic?
    Exemple
    I will open a new Midi Instrument on a region. Than I Know I have 8 outputs and than I will have 8 Lines and each line I will create Midi comandos for each output separatly.
    can I do this? Or any Idee how can I do this?
    Thanks for help
    Marco

    When you load a plug-in that's capable of multi-output, you do have a menu choice about that when you load it, yeah ?
    You can create the additional channels that you need in the mixer - press the '+' button on the channel strip and it does it for you.

  • Problem with Persistence.xml in JDev final after migration

    Hi,
    I am trying to migrate a current project from JDev 11gTp4 to the JDev production release. When deploying the EJB module I get the following problem though (Stack from DefaultServer.log)
    weblogic.application.ModuleException: Exception preparing module: EJBModule(Nexus-NexusModel-ejb)
         at weblogic.ejb.container.deployer.EJBModule.prepare(EJBModule.java:452)
         at weblogic.application.internal.flow.ModuleListenerInvoker.prepare(ModuleListenerInvoker.java:93)
         at weblogic.application.internal.flow.DeploymentCallbackFlow$1.next(DeploymentCallbackFlow.java:387)
         at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:37)
         at weblogic.application.internal.flow.DeploymentCallbackFlow.prepare(DeploymentCallbackFlow.java:58)
         at weblogic.application.internal.flow.DeploymentCallbackFlow.prepare(DeploymentCallbackFlow.java:42)
         at weblogic.application.internal.BaseDeployment$1.next(BaseDeployment.java:615)
         at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:37)
         at weblogic.application.internal.BaseDeployment.prepare(BaseDeployment.java:191)
         at weblogic.application.internal.EarDeployment.prepare(EarDeployment.java:16)
         at weblogic.application.internal.DeploymentStateChecker.prepare(DeploymentStateChecker.java:155)
         at weblogic.deploy.internal.targetserver.AppContainerInvoker.prepare(AppContainerInvoker.java:60)
         at weblogic.deploy.internal.targetserver.operations.ActivateOperation.createAndPrepareContainer(ActivateOperation.java:197)
         at weblogic.deploy.internal.targetserver.operations.ActivateOperation.doPrepare(ActivateOperation.java:89)
         at weblogic.deploy.internal.targetserver.operations.AbstractOperation.prepare(AbstractOperation.java:217)
         at weblogic.deploy.internal.targetserver.DeploymentManager.handleDeploymentPrepare(DeploymentManager.java:723)
         at weblogic.deploy.internal.targetserver.DeploymentManager.prepareDeploymentList(DeploymentManager.java:1190)
         at weblogic.deploy.internal.targetserver.DeploymentManager.handlePrepare(DeploymentManager.java:248)
         at weblogic.deploy.internal.targetserver.DeploymentServiceDispatcher.prepare(DeploymentServiceDispatcher.java:159)
         at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.doPrepareCallback(DeploymentReceiverCallbackDeliverer.java:157)
         at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.access$000(DeploymentReceiverCallbackDeliverer.java:12)
         at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer$1.run(DeploymentReceiverCallbackDeliverer.java:45)
         at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:516)
         at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
         at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
    java.lang.UnsupportedOperationException: This parser does not support specification "null" version "null"
         at javax.xml.parsers.DocumentBuilderFactory.setSchema(DocumentBuilderFactory.java:561)
         at weblogic.xml.jaxp.RegistryDocumentBuilder.setupDocumentBuilderFactory(RegistryDocumentBuilder.java:393)
         at weblogic.xml.jaxp.RegistryDocumentBuilder.getDefaultDocumentBuilderFactory(RegistryDocumentBuilder.java:359)
         at weblogic.xml.jaxp.RegistryDocumentBuilder.getDocumentBuilder(RegistryDocumentBuilder.java:298)
         at weblogic.xml.jaxp.RegistryDocumentBuilder.parse(RegistryDocumentBuilder.java:150)
         at org.eclipse.persistence.platform.xml.jaxp.JAXPParser.parse(JAXPParser.java:163)
         at org.eclipse.persistence.platform.xml.jaxp.JAXPParser.parse(JAXPParser.java:197)
         at org.eclipse.persistence.internal.oxm.record.DOMUnmarshaller.unmarshal(DOMUnmarshaller.java:213)
         at org.eclipse.persistence.oxm.XMLUnmarshaller.unmarshal(XMLUnmarshaller.java:309)
         at org.eclipse.persistence.internal.jpa.metadata.xml.XMLEntityMappingsReader.read(XMLEntityMappingsReader.java:72)
         at org.eclipse.persistence.internal.jpa.metadata.xml.XMLEntityMappingsReader.read(XMLEntityMappingsReader.java:112)
         at org.eclipse.persistence.internal.jpa.metadata.MetadataProcessor.loadStandardMappingFiles(MetadataProcessor.java:343)
         at org.eclipse.persistence.internal.jpa.metadata.MetadataProcessor.loadMappingFiles(MetadataProcessor.java:271)
         at org.eclipse.persistence.internal.jpa.deployment.PersistenceUnitProcessor.processORMetadata(PersistenceUnitProcessor.java:294)
         at org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.predeploy(EntityManagerSetupImpl.java:830)
         at org.eclipse.persistence.jpa.PersistenceProvider.createContainerEntityManagerFactory(PersistenceProvider.java:189)
         at weblogic.deployment.PersistenceUnitInfoImpl.createEntityManagerFactory(PersistenceUnitInfoImpl.java:330)
         at weblogic.deployment.PersistenceUnitInfoImpl.<init>(PersistenceUnitInfoImpl.java:123)
         at weblogic.deployment.AbstractPersistenceUnitRegistry.storeDescriptors(AbstractPersistenceUnitRegistry.java:331)
         at weblogic.deployment.AbstractPersistenceUnitRegistry.loadPersistenceDescriptor(AbstractPersistenceUnitRegistry.java:245)
         at weblogic.deployment.ModulePersistenceUnitRegistry.<init>(ModulePersistenceUnitRegistry.java:63)
         at weblogic.ejb.container.deployer.EJBModule.setupPersistenceUnitRegistry(EJBModule.java:209)
         at weblogic.ejb.container.deployer.EJBModule$1.execute(EJBModule.java:310)
         at weblogic.deployment.PersistenceUnitRegistryInitializer.setupPersistenceUnitRegistries(PersistenceUnitRegistryInitializer.java:62)
         at weblogic.ejb.container.deployer.EJBModule.prepare(EJBModule.java:376)
         at weblogic.application.internal.flow.ModuleListenerInvoker.prepare(ModuleListenerInvoker.java:93)
         at weblogic.application.internal.flow.DeploymentCallbackFlow$1.next(DeploymentCallbackFlow.java:387)
         at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:37)
         at weblogic.application.internal.flow.DeploymentCallbackFlow.prepare(DeploymentCallbackFlow.java:58)
         at weblogic.application.internal.flow.DeploymentCallbackFlow.prepare(DeploymentCallbackFlow.java:42)
         at weblogic.application.internal.BaseDeployment$1.next(BaseDeployment.java:615)
         at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:37)
         at weblogic.application.internal.BaseDeployment.prepare(BaseDeployment.java:191)
         at weblogic.application.internal.EarDeployment.prepare(EarDeployment.java:16)
         at weblogic.application.internal.DeploymentStateChecker.prepare(DeploymentStateChecker.java:155)
         at weblogic.deploy.internal.targetserver.AppContainerInvoker.prepare(AppContainerInvoker.java:60)
         at weblogic.deploy.internal.targetserver.operations.ActivateOperation.createAndPrepareContainer(ActivateOperation.java:197)
         at weblogic.deploy.internal.targetserver.operations.ActivateOperation.doPrepare(ActivateOperation.java:89)
         at weblogic.deploy.internal.targetserver.operations.AbstractOperation.prepare(AbstractOperation.java:217)
         at weblogic.deploy.internal.targetserver.DeploymentManager.handleDeploymentPrepare(DeploymentManager.java:723)
         at weblogic.deploy.internal.targetserver.DeploymentManager.prepareDeploymentList(DeploymentManager.java:1190)
         at weblogic.deploy.internal.targetserver.DeploymentManager.handlePrepare(DeploymentManager.java:248)
         at weblogic.deploy.internal.targetserver.DeploymentServiceDispatcher.prepare(DeploymentServiceDispatcher.java:159)
         at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.doPrepareCallback(DeploymentReceiverCallbackDeliverer.java:157)
         at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.access$000(DeploymentReceiverCallbackDeliverer.java:12)
         at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer$1.run(DeploymentReceiverCallbackDeliverer.java:45)
         at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:516)
         at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
         at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
    My persistence.xml looks like
    <?xml version="1.0" encoding="windows-1252" ?>
    <persistence xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"
    version="1.0" xmlns="http://java.sun.com/xml/ns/persistence">
    <persistence-unit name="Nexus-ejbPU">
    <provider>
    org.eclipse.persistence.jpa.PersistenceProvider
    </provider>
    <jta-data-source>
    jdbc/NexusPoolDS
    </jta-data-source>
    <mapping-file>
    META-INF/orm.xml
    </mapping-file>
    <properties>
    <property name="eclipselink.target-server" value="WebLogic_10"/>
    <property name="eclipselink.logging.file" value="Toplink.log"/>
    <property name="eclipselink.logging.timestamp" value="true"/>
    <property name="eclipselink.logging.exceptions" value="true"/>
    <property name="eclipselink.logging.session" value="true"/>
    </properties>
    </persistence-unit>
    </persistence>
    orm.xml looks like this
    <?xml version="1.0" encoding="windows-1252" ?>
    <entity-mappings xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/persistence/orm http://java.sun.com/xml/ns/persistence/orm_1_0.xsd"
    version="1.0"
    xmlns="http://java.sun.com/xml/ns/persistence/orm">
    <persistence-unit-metadata>
    <persistence-unit-defaults>
    <schema>
    XXX
    </schema>
    </persistence-unit-defaults>
    </persistence-unit-metadata>
    <package>
    za.co.medscheme.model.persistence.xxx
    </package>
    <schema>
    XXX
    </schema>
    </entity-mappings>
    I have noticed that the persistence.xml file have changed quite drastically from the version we had in TP4 release during project upgrade, but can not explain the problem we are getting. I have also tried to just create a dummy project and create a persistence unit, and the file looks exactly the same afterwards. Any thoughts?
    Drikus

    Just thought I would add a temporary solution to the problem for those of you sitting with the same issue.
    In the root folder of your application you will find a src folder with a meta-inf folder and weblogic-application.xml inside.
    Add the following before the closing weblogic-application tag...
    <xml>
    <parser-factory>
    <saxparser-factory>
    weblogic.xml.jaxp.WebLogicSAXParserFactory
    </saxparser-factory>
    <document-builder-factory>
    weblogic.xml.jaxp.WebLogicDocumentBuilderFactory
    </document-builder-factory>
    <transformer-factory>
    weblogic.xml.jaxp.WebLogicSAXTransformerFactory
    </transformer-factory>
    </parser-factory>
    </xml>
    If there wasnt an xml tag in the file, it seems that JDeveloper somehow adds one on the fly for you pointing to an oracle xml parser that does not contain the setSchema method required by weblogic on deployment.
    Hope this helps anybody else that has this problem.
    Regards
    Drikus Britz

  • Noob Question: Problem with Persistence in First Entity Bean

    Hey folks,
    I have started with EJB3 just recently. After reading several books on the topic I finally started programming myself. I wanted to develop a little application for getting a feeling of the technology. So what I did is to create a AppClient, which calls a Stateless Session Bean. This Stateless Bean then adds an Entity to the Database. For doing this I use Netbeans 6.5 and the integrated glassfish. The problem I am facing is, that the mapping somehow doesnt work, but I have no clue why it doesn't work. I just get an EJBException.
    I would be very thankfull if you guys could help me out of this. And don't forget this is my first ejb project - i might need a very detailed answer ... I know - noobs can be a real ....
    So here is the code of the application. I have a few methods to do some extra work there, you can ignore them, there are of no use at the moment. All that is really implemented is testConnection() and testAddCompany(). The testconnection() Methode works pretty fine, but when it comes to the testAddCompany I get into problems.
    Edit:As I found out just now, there is the possibility of Netbeans to add a Facade pattern to an Entity bean. If I use this, everythings fine and it works out to be perfect, however I am still curious, why the approach without the given classes by netbeans it doesn't work.
    public class Main {
        private EntryRemote entryPoint = null;
        public static void main(String[] args) throws NamingException {
            Main main = new Main();
            main.runApplication();
        private void runApplication()throws NamingException{
            this.getContext();
            this.testConnection();
            this.testAddCompany();
            this.testAddShipmentAddress(1);
            this.testAddBillingAddress(1);
            this.testAddEmployee(1);
            this.addBankAccount(1);
        private void getContext() throws NamingException{
            InitialContext ctx = new InitialContext();
            this.entryPoint = (EntryRemote) ctx.lookup("Entry#ejb.EntryRemote");
        private void testConnection()
            System.err.println("Can Bean Entry be reached: " + entryPoint.isAlive());
        private void testAddCompany(){
            Company company = new Company();
            company.setName("JavaFreaks");
            entryPoint.addCompany(company);
            System.err.println("JavaFreaks has been placed in the db");
        }Here is the Stateless Session Bean. I added the PersistenceContext, and its also mapped in the persistence.xml file, however here the trouble starts.
    import javax.ejb.Stateless;
    import javax.persistence.EntityManager;
    import javax.persistence.PersistenceContext;
    @Stateless(mappedName="Entry")
    public class EntryBean implements EntryRemote {
        @PersistenceContext(unitName="PersistenceUnit") private EntityManager manager;
        public boolean isAlive() {
            return true;
        public boolean addCompany(Company company) {
            manager.persist(company);
            return true;
        public boolean addShipmentAddress(long companyId) {
            return false;
        public boolean addBillingAddress(long companyId) {
            return false;
        public boolean addEmployee(long companyId) {
            return false;
        public boolean addBankAccount(long companyId) {
            return false;
    }That you guys and gals will have a complete overview of whats really going on, here is the Entity as well.
    package ejb;
    import java.io.Serializable;
    import javax.persistence.*;
    @Entity
    @Table(name="COMPANY")
    public class Company implements Serializable {
        private static final long serialVersionUID = 1L;
        @Id
        @GeneratedValue(strategy = GenerationType.AUTO)
        private Long id;
        @Column(name="COMPANY_NAME")
        private String name;
        public Long getId() {
            return id;
        public void setId(Long id) {
            this.id = id;
       public String getName() {
            return name;
        public void setName(String name) {
            this.name = name;
            System.err.println("SUCCESS:  CompanyName SET");
        @Override
        public int hashCode() {
            int hash = 0;
            hash += (id != null ? id.hashCode() : 0);
            return hash;
        @Override
        public boolean equals(Object object) {
            // TODO: Warning - this method won't work in the case the id fields are not set
            if (!(object instanceof Company)) {
                return false;
            Company other = (Company) object;
            if ((this.id == null && other.id != null) || (this.id != null && !this.id.equals(other.id))) {
                return false;
            return true;
        @Override
        public String toString() {
            return "ejb.Company[id=" + id + "]";
    }And the persistence.xml file
    <?xml version="1.0" encoding="UTF-8"?>
    <persistence version="1.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd">
      <persistence-unit name="PersistenceUnit" transaction-type="JTA">
        <provider>oracle.toplink.essentials.PersistenceProvider</provider>
        <jta-data-source>jdbc/sample</jta-data-source>
        <exclude-unlisted-classes>false</exclude-unlisted-classes>
        <properties>
          <property name="toplink.ddl-generation" value="create-tables"/>
        </properties>
      </persistence-unit>
    </persistence>And this is the error message
    08.06.2009 10:30:46 com.sun.enterprise.appclient.MainWithModuleSupport <init>
    WARNUNG: ACC003: Ausnahmefehler bei Anwendung.
    javax.ejb.EJBException: nested exception is: java.rmi.ServerException: RemoteException occurred in server thread; nested exception is:
            java.rmi.RemoteException: Transaction aborted; nested exception is: javax.transaction.RollbackException: Transaktion für Zurücksetzung markiert.; nested exception is:
            javax.transaction.RollbackException: Transaktion für Zurücksetzung markiert.
    java.rmi.ServerException: RemoteException occurred in server thread; nested exception is:
            java.rmi.RemoteException: Transaction aborted; nested exception is: javax.transaction.RollbackException: Transaktion für Zurücksetzung markiert.; nested exception is:
            javax.transaction.RollbackException: Transaktion für Zurücksetzung markiert.
            at com.sun.corba.ee.impl.javax.rmi.CORBA.Util.mapSystemException(Util.java:243)
            at com.sun.corba.ee.impl.presentation.rmi.StubInvocationHandlerImpl.privateInvoke(StubInvocationHandlerImpl.java:205)
            at com.sun.corba.ee.impl.presentation.rmi.StubInvocationHandlerImpl.invoke(StubInvocationHandlerImpl.java:152)
            at com.sun.corba.ee.impl.presentation.rmi.bcel.BCELStubBase.invoke(BCELStubBase.java:225)
            at ejb.__EntryRemote_Remote_DynamicStub.addCompany(ejb/__EntryRemote_Remote_DynamicStub.java)I spend half the night figuring out whats wrong, however I couldnt find any solution.
    If you have any idea pls let me know
    Best regards and happy coding
    Taggert
    Edited by: Taggert_77 on Jun 8, 2009 2:27 PM

    Well I don't understand this. If Netbeans created a Stateless Session Bean as a facade then it works -and it is implemented as a CMP, not as a BMP as you suggested.
    I defenitely will try you suggestion, just for curiosity and to learn the technology, however I dont have see why BMP will work and CMP won't.
    I also don't see why a stateless bean can not be a CMP. As far as I read it should not matter. Also on the link you sent me, I can't see anything related to that.
    Maybe you can help me answering these questions.
    I hope the above lines don't sound harsh. I really appreciate your input.
    Best regards
    Taggert

Maybe you are looking for

  • Added new parm to an existing SQL stored procedure CR 11 doesn't like it

    Hi I have added a new parameter to an existing SQL stored procedure (SQL 2000).  This stored procedure is currently being called from a Crystal XI report.  It prompts for a date which works great.  (The report was created with this parameter).  I add

  • How do I fix my itouch if the screen is flashing?

    How do I fix my itouch if the screen is flashing purple, black, and white streaks and is unresponsiveness to the power on/off button?

  • URGENT!!!! Mail won't display my RSS feeds anymore

    Hello, I recently deleted a RSS feed but my mail froze. After restarting the Mail app I couldn't find any of my RSS feeds anymore. I thought that maybe I accidently deleted all my RSS so I tried re-adding all my RSS feeds but even that did't work. Pl

  • How to set a webi report's caching format?

    Hello Community, I have come to a hurdle that I can not conquer on my own and for as much as I have tried can not find samples or documents on how to accomplish this. I am writing code to schedule webi reports and the piece that handles the caching f

  • Intransit Shipment from WMS Enabled to Non-WMS Enabled Org

    Hi All, When performing Intransit Shipment (IOT) from WMS Enabled to Non-WMS Enabled Org, we are not able to Ship goods which are lying in LPNs. As a work around, we are unpacking them and shipping. But this will not work in the long run for the clie