Batch hint

Hi,
I'm trying to select multiple objects in a query and apply the batching hint to the query. This fails at runtime with an IllegalArgumentException because it is only applicable if you are returning 1 object. My problem is that the number of objects produced can be quite large and then as I iterate over them, relationships are fetched one at a time which really bogs down. Is there a way to stipulate that the entity manager fetch associations for a multi-object select? I've also played with the @JoinFetch annotation which gives the desired query but then results in a later exception when the results are being associated with the entities.
Here is a sample of how I would like to write the query:
SELECT new org.comp.MC(med1, med2)
FROM FM med1, FM med2
JOIN FETCH med1.nM JOIN FETCH med2.nM
LEFT JOIN FETCH med1.st LEFT JOIN FETCH med2.st
WHERE med1.mi = med2.mi
Thx Drew

These are 2 different FM's. I simplified the query for the sake of this post but it compares 2 objects that may exist in 2 different contexts.
Here is the exception I get:
WARNING: java.lang.IllegalArgumentException: fromIndex(130) > toIndex(121)
     at org.eclipse.persistence.internal.helper.NonSynchronizedSubVector.<init>(NonSynchronizedSubVector.java:32)
     at org.eclipse.persistence.mappings.ForeignReferenceMapping.trimRowForJoin(ForeignReferenceMapping.java:1462)
     at org.eclipse.persistence.mappings.ForeignReferenceMapping.trimRowForJoin(ForeignReferenceMapping.java:1434)
     at org.eclipse.persistence.mappings.OneToOneMapping.valueFromRowInternalWithJoin(OneToOneMapping.java:992)
     at org.eclipse.persistence.mappings.ForeignReferenceMapping.valueFromRow(ForeignReferenceMapping.java:1338)
     at org.eclipse.persistence.mappings.DatabaseMapping.readFromRowIntoObject(DatabaseMapping.java:1119)
     at org.eclipse.persistence.internal.descriptors.ObjectBuilder.buildAttributesIntoObject(ObjectBuilder.java:301)
     at org.eclipse.persistence.internal.descriptors.ObjectBuilder.buildObject(ObjectBuilder.java:677)
     at org.eclipse.persistence.internal.descriptors.ObjectBuilder.buildWorkingCopyCloneNormally(ObjectBuilder.java:547)
     at org.eclipse.persistence.internal.descriptors.ObjectBuilder.buildObjectInUnitOfWork(ObjectBuilder.java:517)
     at org.eclipse.persistence.internal.descriptors.ObjectBuilder.buildObject(ObjectBuilder.java:461)
     at org.eclipse.persistence.queries.ReportQueryResult.processItem(ReportQueryResult.java:183)
     at org.eclipse.persistence.queries.ReportQueryResult.buildResult(ReportQueryResult.java:105)
     at org.eclipse.persistence.queries.ReportQueryResult.<init>(ReportQueryResult.java:74)
     at org.eclipse.persistence.queries.ReportQuery.buildObject(ReportQuery.java:585)
     at org.eclipse.persistence.queries.ReportQuery.buildObjects(ReportQuery.java:634)
     at org.eclipse.persistence.queries.ReportQuery.executeDatabaseQuery(ReportQuery.java:822)
     at org.eclipse.persistence.queries.DatabaseQuery.execute(DatabaseQuery.java:666)
     at org.eclipse.persistence.queries.ObjectLevelReadQuery.execute(ObjectLevelReadQuery.java:840)
     at org.eclipse.persistence.queries.ReadAllQuery.execute(ReadAllQuery.java:456)
     at org.eclipse.persistence.queries.ObjectLevelReadQuery.executeInUnitOfWork(ObjectLevelReadQuery.java:902)
     at org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.internalExecuteQuery(UnitOfWorkImpl.java:2587)
     at org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1178)
     at org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1162)
     at org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1136)
     at org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1118)
     at org.eclipse.persistence.internal.jpa.EJBQueryImpl.executeReadQuery(EJBQueryImpl.java:399)
     at org.eclipse.persistence.internal.jpa.EJBQueryImpl.getResultList(EJBQueryImpl.java:517)
     at com.rxamerica.rxarchitect.dao.impl.FormularyDAO.findMedsWithStepTherapy(FormularyDAO.java:279)
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
     at java.lang.reflect.Method.invoke(Method.java:597)
     at com.sun.enterprise.security.application.EJBSecurityManager.runMethod(EJBSecurityManager.java:1067)
     at com.sun.enterprise.security.SecurityUtil.invoke(SecurityUtil.java:176)
     at com.sun.ejb.containers.BaseContainer.invokeTargetBeanMethod(BaseContainer.java:2895)
     at com.sun.ejb.containers.BaseContainer.intercept(BaseContainer.java:3986)
     at com.sun.ejb.containers.EJBLocalObjectInvocationHandler.invoke(EJBLocalObjectInvocationHandler.java:197)
     at com.sun.ejb.containers.EJBLocalObjectInvocationHandlerDelegate.invoke(EJBLocalObjectInvocationHandlerDelegate.java:127)
     at $Proxy183.findMedsWithStepTherapy(Unknown Source)
     at com.rxamerica.rxarchitect.api.impl.CompareFormulariesManagerBean.findChangedMedsUsingStepTherapy(CompareFormulariesManagerBean.java:131)
     at com.rxamerica.rxarchitect.api.impl.CompareFormulariesManagerBean.findChangedMeds(CompareFormulariesManagerBean.java:83)
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
     at java.lang.reflect.Method.invoke(Method.java:597)
     at com.sun.enterprise.security.application.EJBSecurityManager.runMethod(EJBSecurityManager.java:1067)
     at com.sun.enterprise.security.SecurityUtil.invoke(SecurityUtil.java:176)
     at com.sun.ejb.containers.BaseContainer.invokeTargetBeanMethod(BaseContainer.java:2895)
     at com.sun.ejb.containers.BaseContainer.intercept(BaseContainer.java:3986)
     at com.sun.ejb.containers.EJBLocalObjectInvocationHandler.invoke(EJBLocalObjectInvocationHandler.java:197)
     at com.sun.ejb.containers.EJBLocalObjectInvocationHandlerDelegate.invoke(EJBLocalObjectInvocationHandlerDelegate.java:127)
     at $Proxy174.findChangedMeds(Unknown Source)
     at com.rxamerica.rxarchitect.web.backing.CompareFormulariesController.initialize(CompareFormulariesController.java:106)
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
     at java.lang.reflect.Method.invoke(Method.java:597)
     at com.sun.el.parser.AstValue.invoke(AstValue.java:187)
     at com.sun.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:297)
     at com.sun.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:68)
     at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:77)
     at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:91)
     at javax.faces.component.UICommand.broadcast(UICommand.java:383)
     at org.ajax4jsf.component.AjaxActionComponent.broadcast(AjaxActionComponent.java:55)
     at org.ajax4jsf.component.AjaxViewRoot.processEvents(AjaxViewRoot.java:321)
     at org.ajax4jsf.component.AjaxViewRoot.broadcastEvents(AjaxViewRoot.java:296)
     at org.ajax4jsf.component.AjaxViewRoot.processPhase(AjaxViewRoot.java:253)
     at org.ajax4jsf.component.AjaxViewRoot.processApplication(AjaxViewRoot.java:466)
     at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:97)
     at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)
     at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:117)
     at javax.faces.webapp.FacesServlet.service(FacesServlet.java:244)
     at org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:411)
     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:317)
     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:198)
     at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:178)
     at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)
     at org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:390)
     at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:517)
     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:230)
     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:198)
     at com.rxamerica.rxarchitect.web.upload.UploadFilter.doFilter(UploadFilter.java:53)
     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:230)
     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:198)
     at com.rxamerica.rxarchitect.filter.user.UserFilter.doFilter(UserFilter.java:65)
     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:230)
     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:198)
     at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:288)
     at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:271)
     at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:202)
     at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)
     at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
     at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:94)
     at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:206)
     at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)
     at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
     at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:571)
     at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1080)
     at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:150)
     at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)
     at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
     at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:571)
     at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1080)
     at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:270)
     at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:637)
     at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.doProcess(DefaultProcessorTask.java:568)
     at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.process(DefaultProcessorTask.java:813)
     at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.executeProcessorTask(DefaultReadTask.java:339)
     at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:261)
     at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:212)
     at com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:265)
     at com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:106)
Thanks,
Drew

Similar Messages

  • Batch hint in toplink jpa

    hi all.
    Is there any mechanism in TopLink Essentials to make query with batch query hints like in EclipseLink?
    Thanks in advance.

    No, this functionality is only offered in EclipseLink. You can upgrade to EclipseLink for this.
    James : http://www.eclipselink.org

  • TopLink JPA  coherence

    we are using Toplink, JPA and coherence.
    can anyone point me to java code that depicts "How to warm up the coherence cache and then run queries against the cache. and then what happens if the at some point object is not in cache " ?
    thx
    D

    Warming the cache for a TopLink Grid enabled entity can be done by issuing a query for the objects you want to load into the cache along with the hint:
    query.setHint(QueryHints.QUERY_REDIRECTOR, new IgnoreDefaultRedirector());
    Which is discussed here: http://download.oracle.com/docs/cd/E14571_01/doc.1111/e16596/tlcgd003.htm#CHDGFCAI.
    You can also use JOIN and BATCH hints on the query if you want to load a graph of objects into the grid.
    With Grid Read and Grid Entity configurations all queries will be executed on the grid. Primary key queries on the grid for objects not present in the grid will result in a primary key select on the database if you've configured a CacheStore for a given entity's cache.
    Non-PK queries will only return what is in the grid. With Grid Read and Grid Entity is it your responsibility to ensure the grid is warmed up.
    --Shaun                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           

  • QMASTER hints 4 usual trouble (QM NOT running/CLUSTEREd nodes/Networks etc

    All, I just posted this with some hints & workaround with very common issues people have on this forum and keep asking concerning the use of APPLE QMASTER with FCP, SHAKE, COMPRESSOR and MOTION. I've had many over the last 2 years and see them coming up frequently.
    Perhaps these symptoms are fixed in FCS2 at MAY 2007 (now). However if not here's some ROTS that i used for FCP to compressor via QMASTER cluster for example. NO special order but might help someone get around the stuff with QMASTER V2.3, FCP V5.1.4, compressor.app V2.3
    I saw the latest QMASTER UI and usage at NAB2007 and it looked a little more solid with some "EASY SETUP" stuff. I hope it has been reworked underneath.. I guess I will know soon if it has.
    For most FCP/COMPRESSOR, SHAKE. MOTION and COMPRESSOR:
    • provide access from ALL nodes to ALL the source and target objects (files) on their VOLUMES. Simply MOUNT those volumes through the APPLE file system (via NFS) using +k (cmd+k) or finder/go/connect to server. OR using an SSAFS such as XSAN™ where the file systems are all shared over FC not the network. YOu will notice the CPU's going very busy for a small while. THhis is the APPLE FILE SYSTEM task,,, I guess it's doing 'spotlight stuff". This goes away after a few minutes.
    • set the COMPRESSOR preferences for "CLUSTER OPTIONS" to "Never copy source to Cluster". This means that all nodes can access your source and target objects (files) over NFS (as above). Failure to to this means LENGTHY times to COPY material back an forth, in some cases undermining the pleasure gained from initially using clustering (reduced job times)
    • DONT mix the PHYSICAL or LOGICAL networks in your local cluster. I dont know why but I could never get this to work. Physical mean stick with eother ETHERNET or FIREWIRE or your other (airport etc whic will be generally way to slow and useless), Logical measn leepin all nodes on the SAME subnet. You can do this siply by setting theis up in the system preferences/QMASTER/advanced tab under "Use Network Interfaces". In my currnet QUAd I set this to use BUILT IN ETHERNET1 and in the MPBDC's I set this to their BUILTIN ETHERNET.
    • LOGICAL NETWORKS (Subnet): simply HARDCODE an IP address on the ETHERNET (for eample) for your cluster nodes andthe service controller. FOr eample 3.1.1.x .... it will all connect fine.
    • Physical Networks: As above (1) DONT MIX firewire (IPoFW) and Ethernet(IPoE). (2) if more than extra service node USE A HUB or SWITCH. I went and bought a 10 port GbE HUB for about $HK400 (€40) and it worked fine. I was NEVER able to get a stable system of QMASTER mixing FW and ETHERNET. (3) fwiw using IP of FW caused me a LOAD of DISK errors and timouts (I/O errors) on thosse DISKs that were FW400 (al gone now) but it showed this was not stable overall
    • for the cluster controller node MAKE SURE you set the CLUSTER STORAGE (system preferences/QMASTER/shared cluster storage) for the CLUSTER CONTROLLER NODE IS ON A SHARED volume (See above). This seems essential for SHAKE to work. (if not check the Qmaster errors in the console.app [see below] ). IF you have an SSAFS like XSAN™ then just add this cluster storage on a share file path. NOte that QMASTER does not permit the cluster storage to be on a NETWORK NODE for some reason. So in short just MOUNT the volume where the SHARED CLUSTER file is maintained for the CLUSTER controller.
    • FCP - avoid EXPORT to COMPRESSOR from the TIMELINE - it never seems to work properly (see later). Instead EXPORT FROM SEQUENCE in the BROWSER - consistent results
    • FCP - "media missing " messages on EXPORT to COMPRESSOR.. seems a defect in FCP 5.1 when you EXPORT using a sequence that is NOT in the "root" or primary trry in the FCP PROJECT BROWSER. Simply if you have browser/bin A contains(Bin B (contains Bin C (contains sequence X))) this will FAIL (wont work) for "EXPORT TO COMPRESSOR" if you use EXPORT to COMPRESSOR in a FCP browser PANE that is separately OPEN. To get around this, simply OPEN/EXPOSE the triangles/trees in the BROWSER PANE for the PROJECT and select the SEQUENCE you want and "EXPORT to COMPRESSOR" from there. This has been documented in a few places in this forum I think.
    • FCP -> COMPRESSOR -> .M2V (for DVDSP3): some things here. EXPORTING from an FCP SEQUENCE with CHAPTER MARKERS to an MPEG2 .M2V encoding USING A CLUSTER causes errors in the placement of the chapter makers when it is imported to DVDSP3. In fact CONSISTENTLY, ALL the chapter markers are all PLACED AT THE END of the TRACK in DVD SP# - somewhat useless. This seems to happen ALSO when the source is an FCP reference movie, although inconsistent. A simple work around if you have the machines is TRUN OF SEGMENTING in the COMPRESSOR ENCODER inspector. let each .M2V transcode run on the same service node. FOr the jobs at hand just set up a CLUSTER and controller for each machine and then SELECT the cluster (myclusterA, hisclusterb, herclusterc) for each transcode job.. anyway for me.. the time spent resolving all this I could have TRANSCODED all this on my QUAD and it would all have ben done by sooner! (LOL)
    • CONSOLE logs: IF QMASTER fails, I would suggest your fist port of diagnosis should be /Library/Logs/Qmaster in there you will see (on the controller node) compressor.log, jobcontroller.com.apple.qmaster.cluster.admin.log, and lots of others including service controller.com.apple.qmaster.executorX.log (for each cpu/core and node) andd qmasterca.log. All these are worth a look and for me helped me solve 90% of my qmaster errors and failures.
    • MOTION 3 - fwiw.. EXPORT USING COMPRESSOR to a CLUSTER seems to fail EVERY TIME.. seems MOTION is writing stuff out to a /var/spool/qmaster
    TROUBLESHOOTING QMASTER: IF QMASTER seems buggered up (hosed), then follow these steps PRIOR to restarting you machines.
    go read the TROUBLE SHOOTING in the published APPLE docs for COMPRESSOR, SHAKE and "SET UP FOR DISTRIBUTED PROCESSING" and serach these forums CAREFULLY.. the answer is usually there somewhere.
    ELSE THEN,, try these steps....
    You'll feel that QMASTER is in trouble when you
    • see that the QMASTER ICON at the top of the screen says 'NO SERVICES" even though that node is started and
    • that the APPLE QMASTER ADMINSTRATOR is VERY SLOW after an 'APPLY" (like minutes with SPINNING BEACHBALL) or it WONT LET YOU DELETE a cluster or you see 'undefined' nodes in your cluster (meaning that one was shut down or had a network failure)..... all this means it's going to get worse and worse. SO DONT submit any more work to QAMSTER... best count you gains and follow this list next.
    (a) in COMPRESSOR.app / RESET BACKGROUND PROCESSES (its under the COMPRESSOR name list box) see if things get kick started but you will lose all the work that has been done up to that point for COMPRESSOR.app
    b) if no OK, then on EACH node in that cluster, STOP the QMASTER (system preferences/QMASTER/setup [set 0 minutes in the prompt and OK). Then when STOPPED, RESET the shared services my licking OPTION+CLICK on the "START" button to reveal the "RESET SERVICES". Then click "START" on each node to start the services. This has the actin of REMOVING or in the case where the CLUSTER CONTROLLER node is "RESET" f terminating the cluster that's under its control. IF so Simply go to APPLE QMASTER ADMINISTRATOR and REDFINE it. Go restart you cluster.
    c) if step (b) is no help, consult the QMASTER logs in /Library/Logs/Qmaster (using the cosole.app) for any FILE MISSING or FILE not found or FILE ERROR . Look carefully for the NODENAME (the machine_name.local) where the error may have occured. Sometimes it's very chatty. Others it is not. ALso look in the BATCH MONITOR OUTPUT for errors messages. Often these are NEVER written (or I cant find them) in the /var/logs... try and resolve any issues you can see (mostly VOLUME or FILE path issues from my experience)
    (d) if still no joy then - try removing all the 'dead' cluster files from /var/tmp/qmaster , /var/sppol/qmaster and also the file directory that you specified above for the controller to share the clustering. FOR shake issues, go do the same (note also where the shake shared cluster file path is - it can be also specified in the RENDER FILEOUT nodes prompt).
    e) if all this WONT help you, its time to get the BIG hammer out. Simply, STOP all nodes of not stopped. (if status/mode is "STOPPING" then it [QMASTER] is truly buggered). DISMOUNT the network volumes you had mounted. and RESTART ALL YOUR NODES. Tis has the affect of RESTARTING all the QMASTERD tasks. YEs sure you can go in and SUDO restart them but it is dodgy at best because they never seem to terminate cleanly (Kill -9 etc) or FORCE QUIT.... is what one ends up doing and then STILL having to restart.
    f) after restart perform steps from (B) again and it will be usually (but not always) right after that
    LAstly - here's some posts I have made that may help others for QMASTER 2.3 .. and not for the NEW QMASTER as at MAy 2007...
    Topic "qmasterd not running" - how this happened and what we did to fix it. - http://discussions.apple.com/message.jspa?messageID=4168064#4168064
    Topic: IP over Firewire AND Ethernet connected cluster? http://discussions.apple.com/message.jspa?messageID=4171772#4171772
    LAstly spend some DEDICATED time to using OBJECTIVE keywords to search the FINAL CUT PRO, SHAKE, COMPRESSOR , MOTION and QMASTER forums
    hope thats helps.
    G5 QUAD 8GB ram w/3.5TB + 2 x 15in MBPCore   Mac OS X (10.4.9)   FCS1, SHAKE 4.1

    Warwick,
    Thanks for joining the forum and for doing all this work and posting your results for our benefit.
    As FCP2 arrives in our shop, we will try once again to make sense of it and to see if we can boost our efficiencies in rendering big projects and getting Compressor to embrace five or six idle Macs.
    Nonetheless, I am still in "Major Disbelief Mode" that Apple has done so little to make this software actually useful.
    bogiesan

  • How to get the destination path in an photoshop sdk export plugin when using a batch action?

    Hello,
    I've written an exporter plugin (not save-as) that exports a given file to a custom format.
    I was able to open a file selector dialog and choose a path that is then transported to the saving location.
    Now my problem is: Another intended use is batch exporting many files. The user records an action with the export step and then applies a batch on it.
    The PS batch window allows you to select the destination to be a directory where the exporter should write the data. Fine.
    Now how do I get this path? When running in batch mode the silent flag is set for my plugin so I do not spawn a file selector dialog to annoy the user.
    But I am also unable to obtain the path which was selected by the user in the batch window.
    The SDK automation plugin Getter has some code to retrieve the path of the file and even that fails as it cannot obtain anything.
    PropertyUtils.h has some PIGetWorkPathIndex and PIGetPathName functions but I always get 0 when asking PIGetNumberPaths, and get -1 with PIGetWorkPathIndex.
    I would be thankful if somebody could hint me how I can retrieve directories.
    It even seems impossible for me to get the path where the file is actually saved. The filter plugin called Propertizer utilizes a function called PIGetDocumentName but this only outputs the file name, not the full path.
    (Just to be sure: The file on which the tests run is already saved to disk, if that matters)
    Another fun part is: When I record an export step, what is the directory I am exporting into?

    Ok, after lots of reading the sdk sample outbound I've realized that or plugin is broken.
    When recording an action the outbound plugin stores the current path to gAliasHandle which is then recorded as a scripting parameter. Now when I execute the action I get the alias handle.
    However how is this supposed to work with an export plugin and batch processing with a "destination" set to a target? Is this even possible or do I need to double click the export step in the action and "reset" the location even if that causes the entire exporter to run again?

  • [Resolved][ODQ] Error Running Exported Batch Script Outside of ODI

    Dear ODI experts,
    I have Installed 10.1.3.4.0 ---> selected "Oracle Data Integrator, Oracle Data Profiling, Oracle Data Quality 10.1.3.4.0" ---> Complete (1012MB)
    - follow all steps of "Design a Name and Address Cleansing Project" section in Sample Tutorial
    - in "Oracle DQ User Interface", right click Projects->Quality->customer master[1]
    - select "Run" from the context menu
    - the background tasks completed 100% properly
    - export the project as a Batch Script
    - make changes to config.txt, runProjectN.cmd, and *.stx files following as specified in the Sample Tutorial document
    - at step 13-f, got the following errors by executing runProjectN.cmd
    Wed Nov 28 17:18:37 2007 - 03503E ERROR: Can't open file: <D:\Bin\Oracle\ODIDQ10134\demo\oracledq\projects\oracledq\project1\data/e7_us_globrtr_p2.dat>. errno = 2; N
    o such file or directory Occurred in Transformer - (cl_open).
    I did a full search in ODI folders and couldn't find "e7_us_globrtr_p2.dat".
    I tried both export with data and export w/o data with proper change to specify input file path, and got the same error.
    Appreciate any suggestions and/or hints help me further debug of fix this issue.
    Regards,
    Roy
    The following is a complete message echo of runProjectN.cmd
    ===========================================================================
    D:\Bin\Oracle\ODIDQ10134\demo\oracledq\projects\oracledq\project1\scripts>runproject1.cmd
    D:\Bin\Oracle\ODIDQ10134\demo\oracledq\projects\oracledq\project1\scripts>set TS_PROJECT=D:\Bin\Oracle\ODIDQ10134\demo\oracledq\projects\oracledq\project1
    D:\Bin\Oracle\ODIDQ10134\demo\oracledq\projects\oracledq\project1\scripts>set TS_CONFIG=D:\Bin\Oracle\ODIDQ10134\demo\oracledq\projects\oracledq\project1\scripts\config.txt
    D:\Bin\Oracle\ODIDQ10134\demo\oracledq\projects\oracledq\project1\scripts>set TS_SETTINGS=D:\Bin\Oracle\ODIDQ10134\demo\oracledq\projects\oracledq\project1\settings
    D:\Bin\Oracle\ODIDQ10134\demo\oracledq\projects\oracledq\project1\scripts>set TS_DATA=D:\Bin\Oracle\ODIDQ10134\demo\oracledq\projects\oracledq\project1\data
    D:\Bin\Oracle\ODIDQ10134\demo\oracledq\projects\oracledq\project1\scripts>cd /D D:\Bin\Oracle\ODIDQ10134\oracledq\quality_server\tsq11r0s\Software\bin
    D:\Bin\Oracle\ODIDQ10134\oracledq\quality_server\tsq11r0s\Software\bin>call tranfrmr D:\Bin\Oracle\ODIDQ10134\demo\oracledq\projects\oracledq\project1\settings\e5_tranfrmr_p1.stx
    D:\Bin\Oracle\ODIDQ10134\oracledq\quality_server\tsq11r0s\Software\bin>call globrtr D:\Bin\Oracle\ODIDQ10134\demo\oracledq\projects\oracledq\project1\settings\e6_globrtr_p2.stx
    D:\Bin\Oracle\ODIDQ10134\oracledq\quality_server\tsq11r0s\Software\bin>call tranfrmr D:\Bin\Oracle\ODIDQ10134\demo\oracledq\projects\oracledq\project1\settings\e9_tranfrmr_p3.stx
    Wed Nov 28 17:18:37 2007 - 03503E ERROR: Can't open file: <D:\Bin\Oracle\ODIDQ10134\demo\oracledq\projects\oracledq\project1\data/e7_us_globrtr_p2.dat>. errno = 2; N
    o such file or directory Occurred in Transformer - (cl_open).
    D:\Bin\Oracle\ODIDQ10134\oracledq\quality_server\tsq11r0s\Software\bin>call cusparse D:\Bin\Oracle\ODIDQ10134\demo\oracledq\projects\oracledq\project1\settings\e10_cusparse_p4.stx
    Wed Nov 28 17:18:37 2007 - 03503E ERROR: Can't open file: <D:\Bin\Oracle\ODIDQ10134\demo\oracledq\projects\oracledq\project1\data/e9_us_tranfrmr_p3.dat>. errno = 2;
    No such file or directory Occurred in Customer Data Parser - (cl_open).
    D:\Bin\Oracle\ODIDQ10134\oracledq\quality_server\tsq11r0s\Software\bin>call tsqsort D:\Bin\Oracle\ODIDQ10134\demo\oracledq\projects\oracledq\project1\settings\e11_srtforpm_p5.stx
    Wed Nov 28 17:18:37 2007 - 03503E ERROR: Can't open file: <D:\Bin\Oracle\ODIDQ10134\demo\oracledq\projects\oracledq\project1\data/e10_us_cusparse_p4.dat>. errno = 2;
    No such file or directory Occurred in tsqsort - (cl_open).
    D:\Bin\Oracle\ODIDQ10134\oracledq\quality_server\tsq11r0s\Software\bin>call uspmatch D:\Bin\Oracle\ODIDQ10134\demo\oracledq\projects\oracledq\project1\settings\e12_pmatch_p6.stx
    Wed Nov 28 17:18:37 2007 - 03503E ERROR: Can't open file: <D:\Bin\Oracle\ODIDQ10134\demo\oracledq\projects\oracledq\project1\data/e11_us_srtforpm_p5.dat>. errno = 2;
    No such file or directory Occurred in CGeoIO::initGIO - (cl_open).
    D:\Bin\Oracle\ODIDQ10134\oracledq\quality_server\tsq11r0s\Software\bin>call winkey D:\Bin\Oracle\ODIDQ10134\demo\oracledq\projects\oracledq\project1\settings\e13_winkey_p7.stx
    Wed Nov 28 17:18:38 2007 - 03503E ERROR: Can't open file: <D:\Bin\Oracle\ODIDQ10134\demo\oracledq\projects\oracledq\project1\data/e12_us_pmatch_p6.dat>. errno = 2; N
    o such file or directory Occurred in CWKD::initWKD - (cl_open).
    D:\Bin\Oracle\ODIDQ10134\oracledq\quality_server\tsq11r0s\Software\bin>call tsqsort D:\Bin\Oracle\ODIDQ10134\demo\oracledq\projects\oracledq\project1\settings\e14_srtforrl_p8.stx
    Wed Nov 28 17:18:38 2007 - 03503E ERROR: Can't open file: <D:\Bin\Oracle\ODIDQ10134\demo\oracledq\projects\oracledq\project1\data/e13_us_winkey_p7.dat>. errno = 2; N
    o such file or directory Occurred in tsqsort - (cl_open).
    D:\Bin\Oracle\ODIDQ10134\oracledq\quality_server\tsq11r0s\Software\bin>call rellink D:\Bin\Oracle\ODIDQ10134\demo\oracledq\projects\oracledq\project1\settings\e15_rellink_p9.stx
    Wed Nov 28 17:18:38 2007 - 03503E ERROR: Can't open file: <D:\Bin\Oracle\ODIDQ10134\demo\oracledq\projects\oracledq\project1\data/e14_us_srtforrl_p8.dat>. errno = 2;
    No such file or directory Occurred in CMatcher::InitMatcher - (cl_open).
    D:\Bin\Oracle\ODIDQ10134\oracledq\quality_server\tsq11r0s\Software\bin>call common D:\Bin\Oracle\ODIDQ10134\demo\oracledq\projects\oracledq\project1\settings\e16_common_p10.stx
    Wed Nov 28 17:18:39 2007 - 03503E ERROR: Can't open file: <D:\Bin\Oracle\ODIDQ10134\demo\oracledq\projects\oracledq\project1\data/e15_us_rellink_p9.dat>. errno = 2;
    No such file or directory Occurred in Create Common - (cl_open).
    D:\Bin\Oracle\ODIDQ10134\oracledq\quality_server\tsq11r0s\Software\bin>call datarec D:\Bin\Oracle\ODIDQ10134\demo\oracledq\projects\oracledq\project1\settings\e17_datarec_p11.stx
    Wed Nov 28 17:18:39 2007 - 03503E ERROR: Can't open file: <D:\Bin\Oracle\ODIDQ10134\demo\oracledq\projects\oracledq\project1\data/e16_us_common_p10.dat>. errno = 2;
    No such file or directory Occurred in CReCons::initRC - (cl_open).
    D:\Bin\Oracle\ODIDQ10134\oracledq\quality_server\tsq11r0s\Software\bin>
    ===========================================================================
    Solution:
    Needs to modify "e9_tranfrmr_p3.stx" to point to "e6_nomatch_globrtr_p2_us.dat".

    Seems to be the DRM service went down, try running the batch after stopping & restarting the service.

  • Error exec. Background Mode a Batch-Input using KP26 Transaction Code

    I have a program that build a Batch-Input based on transaction code KP26.
    I encounter the following error :
    Field Z-BDC02(1) is not an input field (Program : SAPLKPP2 Screen : 0112)
    When executing in background I got the error and when executing in Foreground, it is OK.
    I use SHDB to look at the field needed and  it gave me the same field to use.
    Here is an extract of my program for the field I have the issue on :
        PERFORM F100_BDC_FIELD USING 'Z-BDC02(01)' I_T01-LST.
        PERFORM F100_BDC_FIELD USING 'Z-BDC05(01)' I_T01-SPRED.
        PERFORM F100_BDC_FIELD USING 'Z-BDC07(01)' I_T01-TOV.
        PERFORM F100_BDC_FIELD USING 'Z-BDC08(01)' I_T01-TOF.
    Any one have an hint to solve this ?

    Hi,
    Just one remark: batch input is always executed in synchronous mode (hopefully, otherwise we would get many lock issues during mass updates!) Or is there something I missed?
    Same thing when you use BDC_INSERT, CTU_PARAMS is ignored ([SAP note 1437811 (Batch input: BDC_INSERT parameter CTUPARAMS)|https://service.sap.com/sap/support/notes/1437811 ])
    About the issue, I don't know, so maybe explain more about the context: for instance, do you run the session under a different user? (for instance, the user could be assigned a transaction/screen variant with table control variant, that protects some fields) Do you have one transaction in the batch input session or are there several ones. Try with one only to see if it works. If yes, then maybe it's something in memory that changes the "input-capability" of the field after the first transaction.
    Sandra

  • Error running ODI scenario from batch file

    Hello, everyone!
    I am loading data into Essbase 11.1.2 from MS SQL Server views using ODI 11.1.1.5.0 and Local agent. I created an interface which runs ok if launched manually from ODI.
    Then I created the scenario named MyScenario for this interface and updated odiparams.bat file in *...\agent\bin* folder as follows:
    set SECU_DRIVER=weblogic.jdbc.sqlserver.SQLServerDriver
    set SECU_URL=jdbc:weblogic:sqlserver://<ServerName>:1433;databaseName=<DatabaseName>
    set SECU_USER=<UserName for Master Repository>
    set SECU_PASS=<encoded password for MasterRepository UserName>
    set ODI_USER=SUPERVISOR
    set ODI_PASS=<encoded password for SUPERVISOR>
    set WORK_REPOSITORY=<Work Repository name>
    Then I created the batch file in which I wrote: *...\agent\bin>startscen MyScenario 001 GLOBAL 5*
    However the scenario is not executed with the following error message:
    ERROR ODI-1132 Agent Internal encountered a warning: ODI-1414: Error connecting to agent Internal: a JDBC error occurs while connecting to the master repository. Caused by: org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is java.sql.SQLException: Exception occurred while getting connection: oracle.ucp.UniversalConnectionPoolException: Cannot get Connection from Datasource: java.sql.SQLRecoverableException: IO Error: The Network Adapter could not establish the connection
    I will be very grateful for any hints!

    A fundamental clarification : where is your master repository database located ? Is it on SQL Server as well ?
    The MS SQL Server connection that you mentioned in the SECU_DRIVER, SECU_URL should point to the MR database.
    Is the server name in SECU_URL a Fully Qualified domain name or just an IP Address reachable from localhost ?
    startscen will spawn a new instance of local agent.
    startcmd will reuse an existing agent (not local).
    Not sure why your local agent is getting a Network Connection Error.

  • Tips/Hints re: using flash for live title graphics and visualisations

    Hi guys, this is my first post. I'm a design student from New Zealand, with a reasonably basic knowledge of flash, I've built a few relatively simple flash sites and applications for example.
    I got a job the other day to produce live title graphics for a fashion show, and think flash can do the trick. Before i started i wanted to jump on here and see if you guys know of any interesting tutorials etc that could help me out? computerarts has a few on using live video/sound to create animation. I also need a way to transition pages without a set time, almost a crossfader- as the show is not timed exactly.
    Any tips or hints would be much appreciated!!!
    cheers
    brad

    while thanking u for the tips which were very useful I want to know if i can create batch files for often repeated activites and put them into action from my desktop  ----raj

  • User exit/BADI for MIGO Batch numbers

    Hi All,
    I want to find a user exit which will give the oldest batch number (MCHA-LWDET) of semi-finished product during the goods receipts of the finished prodocut in MIGO.
    Could you please give me any hints to find out the user exit for this.
    Regards,
    Sekhar D

    Hi,
    Check these User exits... for MIGO
    Exit Name           Description
    MBCF0002            Customer function exit: Segment text in material doc. item
    MBCF0005            Material document item for goods receipt/issue slip
    MBCF0006            Customer function for WBS element
    MBCF0007            Customer function exit: Updating a reservation
    MBCF0009            Filling the storage location field
    MBCF0010            Customer exit: Create reservation BAPI_RESERVATION_CREATE1
    MBCF0011            Read from RESB and RKPF for print list in  MB26
    MB_CF001            Customer Function Exit in the Case of Updating a Mat. Doc.
    Check thse BADI's.. for MIGO
    Badi Name          
    ARC_MM_EBAN_CHECK   
    ARC_MM_EBAN_WRITE   
    ARC_MM_EINA_WRITE   
    ARC_MM_INVBEL_WRITE 
    ARC_MM_MATBEL_CHECK 
    ARC_MM_MATBEL_WRITE 
    MB_CHECK_LINE_BADI  
    MB_CIN_MM07MFB7     
    MB_CIN_MM07MFB7_QTY 
    MB_DOCUMENT_BADI    
    MB_DOCUMENT_BADI_SAP
    MB_DOCUMENT_BADI_SAP
    MB_DOC_BADI_INTERNAL
    MB_DOC_BADI_INTERNAL
    MB_ME_CSGMT_BADI_SAP RTFASH:
    MB_MIGO_BADI        
    MB_MIGO_ITEM_BADI   
    MB_PHYSINV_INTERNAL  MB_PHYSINV_INTERNAL BAdI Implementation
    MB_RESERVATION_SCR   DFPS: Field in the Reservation
    MB_RESERVATION_UPCHD DFPS: Reservation
    Regards,
    Raghu
    Edited by: Raghavendra  Rao G on Aug 27, 2009 5:50 PM

  • DELVRY01 via IDoc with batch split

    Hi Experts!
    Process:
    -a supplier sends delivery information via EDI to us
    -the supplier cannot do a batch split, so he sends us the delivery like that
    Delivery (delivery order, material number, ...)
    |
    |-Pos 1
    |    |
    |    |-box 1 (batchnumber)
    |    |-box 2 (batchnumber)
    |    |-box 3 (batchnumber)
    |    |-box 4 (batchnumber)
    |
    |
    |-Pos 2
    |    |
    |    |-box 5 (batchnumber)
    |    |-box 6 (batchnumber)
    |    |-box 7 (batchnumber)
    |    |-box 8 (batchnumber)
    |
    |
    Technical infos at our side (customer)
    -IDoc typeDESADV
    -message type: DELVRY01
    -FM which perform the incoming IDoc: IDOC_INPUT_DESADV1
    Problem:
    How can I get the structure above into a IDoc? The problem is that in DELVRY01 (also DELVRY02 and -03, in R/3 4.7 and ERP6.0) I only can insert the batch number once per position of a delivery!
    So I try to use the described E1EDL19 segment with control qualifier BAS. I also generated lower positions with the flag HIPOS in E1EDL24, but it doesn't work. The IDoc is processed correctly without errors but when I look into the delivery (via Tcode: VL32N or MIGO) I see just main items - three positions (in case I had insert one main item with two lower items)!!
    SAP Documentation for delivery
    Does anybody has a hint for me how should I use the DELVRY01 type ?
    regards,
    Steffen Fröhlich

    Steffen -
    I have a similar problem and was wondering if the discoveries you made would fall in that space , currently when we are sending the 856(Advanced shipping notification's ) for batch split items the standard SAP functionality is to put a "0" qty at LGMNG (actual delivered qty field)and populate the various batch quantities at the sub level. Currently the edi mapping is such that only the LGMNG is mapped. In the scenario of batch split items we are sending back "0" qty eventhough they have a valid qty ! any idea how to resolve this ?
    would this require a custom code to add a new field to cumulative the batch splits ?
    Is there another standard field that edi can map to pass this information?
    Is there std edi mapping rules for this scenario?

  • Hint: Beware when using JDev 10.1.3 EA to deploy to 10.1.2 App server!!

    I've struggled a bit with deploying a War packaged application from JDev 10.1.3 to a version 10.1.2 Application Server, and since I've encountered loads of messages in the various forums talking about "Http -'something' when trying to deploy through Ant using the DCM servlet, or running the deployment profile from JDev, I'd like to give you the following hint:
    JDev 10.1.3 is currently built for using the 10.1.3 App server! Therefore it will also generate artifacts according to the new J2EE standard, which means that the various .xml configuration files generated uses xml schema instead of DTD!!
    And since the 10.1.2 App server doesn't tolerate xml schema references in the config files....... well..... you end up with a Http -'something' as return value from the DCM servlet!
    Another Hint: You have to package your War in an Ear structure if deploying through Ant and the DCM servlet(called by using the oc4j_remote_deploy.jar), although you can deploy the exact same war file when using the dcmctl batch file from a command line succesfully! (it apparently does the Ear packaging including automatic 'application.xml' generation for you)

    Hi,
    there does not seem to be an ADF Runtime Installer with JDev 10.1.3ea so none of the 10.1.3 libraries/code would be on the application server. I wonder if it would work if the ADF runtime installer was included in the EA release and it was run on the 10.1.2 AS???
    regards,
    Brenden

  • Batch quantity not deducting when FIRST date (for line item) is in future.

    Hi Folks,
                My requirement is when creating sales order for batch managed materials, if  i give any quantity with future date that is,
    if todays date is 02.07.2010 and if i create sales order..
    material    => mat1
    Quantity   => 20     
    Date   => 12.07.2010     (this is not required delivery date,this is first delivery date in schedule line for that item)
    Batch  => B1
    and initially if Batch B1 has quantity 100 ,after saving this sales order, the quantity must be 80.
    but its not deducting, for future dates ,thats why the same batch is showing quantity 100, next time
    when i m creating new sales order.where as it should show 80.
    where exactly the quantity deduction is carried out (include or PAI PBO modules).
    any hints.
    I appreciate your response.
    Thanks

    Hi Folks,
                My requirement is when creating sales order for batch managed materials, if  i give any quantity with future date that is,
    if todays date is 02.07.2010 and if i create sales order..
    material    => mat1
    Quantity   => 20     
    Date   => 12.07.2010     (this is not required delivery date,this is first delivery date in schedule line for that item)
    Batch  => B1
    and initially if Batch B1 has quantity 100 ,after saving this sales order, the quantity must be 80.
    but its not deducting, for future dates ,thats why the same batch is showing quantity 100, next time
    when i m creating new sales order.where as it should show 80.
    where exactly the quantity deduction is carried out (include or PAI PBO modules).
    any hints.
    I appreciate your response.
    Thanks

  • Change document log not created for customer in Batch input/BDC

    Hi Guys,
    Change document log is created when you manually change the customer using XD02 but when run the Batch/BDC the values are Changed but the change document is not created.
    Please someone can give me some hints?
    Luca.

    Any update guys????
    Regards,
    guru singh

  • Changing the sender name of WF-BATCH

    Hi,
    I am new to workflow programming and looking for guidance on changing the sender name of the emails going (SENDMAIL activity) as WF-BATCH user.
    I looked at the input from this group on similar question and understood that what I need to achieve can only be done via FM SO_DOCUMENT_SEND_API1.
    I am unsure how to accomplish this if the email I am sending out needs to read the description captured in the task (whic is a dialog method) before this (TS01000140).
    Can anyone give me inputs on how to achieve this?
    Thanks for commenting.
    María

    Hi,
    First of all, you might want to check class cl_bcs for sending emails. Basically your function will do the same but this class is a bit more functionality. Plenty of examples in SCN/Internet.
    Whatever function/method you will choose to use, the idea is to develop a workflow method, and then call the email sending function/method from this method. Then you of course develop a task that will call your new method. Now, you will need certain parameters for the email sending function/method: subject, body text, recipient, etc. You need to either deliver these parameters for the method from your workflow container or build some additional logic to the workflow method. E.g. if your task TS01000140 gets the email text into the workflow container, then you need to bind it to your email sending task (and to the method) => you need to add this to your task container and then add it as a parameter to your method.
    One additional hint: When building the custom logic, pay attention to email language. You want to deliver the emails in correct language, so the recipient language must be known before the email is sent...
    Regards,
    Karri 

Maybe you are looking for