Question on Processing Pattern Sessions - not behaving as expected

I have implemented some schedulable jobs in my extensible cache configuration that are scheduled at a fixed rate and then use the processing pattern to submit work to the grid.
However I am seeing some unexpected behaviour which does not seem to make much sense. My jobs are submitted to the grid as follows (some code edited for brevity):-
@Override
     public void run() {
          ProcessingSession session = null;
          try {
          session = new DefaultProcessingSession(StringBasedIdentifier.newInstance("MySession"));
          SubmissionOutcome outcome = session.submit(this, new DefaultSubmissionConfiguration(),
     new TaskSubmissionCallback(taskName));
          catch (Throwable t) {
               log.error("Failed to Submit Process Pattern Task [{}] For Session [{}]", taskName, nodeName);
          finally {
               try {
                    session.shutdown();
               catch (Throwable t) {
                    log.error("[{}] Failed to Shutdown Processing Pattern Session [{}]", this, nodeName);
My tasks get scheduled and then submiited and executed in the grid. I am currently only running a single node through eclipse for testing.
But after the task has excecuted my TaskSubmissionCallback class gets invoked and the onDone() gets called and returns my result:-
public void onDone(Object oResult)
     log.debug("[{}] Submission done - Result = [{}]", m_sTaskName, oResult);
So all is working. However a couple of milliseconds later I see the following in the logs:-
2012-04-03 17:15:50.407/19.274 Oracle Coherence GE 3.6.0.4 <Error> (thread=DistributedCache:DistributedServiceForProcessingPatternSubmissionResults:EventDispatcher, member=1): The following exception was caught by the event dispatcher:
2012-04-03 17:15:50.407/19.274 Oracle Coherence GE 3.6.0.4 <Error> (thread=DistributedCache:DistributedServiceForProcessingPatternSubmissionResults:EventDispatcher, member=1):
java.util.concurrent.RejectedExecutionException
     at java.util.concurrent.ThreadPoolExecutor$AbortPolicy.rejectedExecution(ThreadPoolExecutor.java:1760)
     at java.util.concurrent.ThreadPoolExecutor.reject(ThreadPoolExecutor.java:767)
     at java.util.concurrent.ScheduledThreadPoolExecutor.delayedExecute(ScheduledThreadPoolExecutor.java:216)
     at java.util.concurrent.ScheduledThreadPoolExecutor.schedule(ScheduledThreadPoolExecutor.java:366)
     at java.util.concurrent.ScheduledThreadPoolExecutor.execute(ScheduledThreadPoolExecutor.java:438)
     at com.oracle.coherence.patterns.processing.internal.DefaultProcessingSession.removeCacheObjectsAsynch(DefaultProcessingSession.java:313)
     at com.oracle.coherence.patterns.processing.internal.DefaultProcessingSession.handleResultChange(DefaultProcessingSession.java:288)
     at com.oracle.coherence.patterns.processing.internal.DefaultProcessingSession$1.onMapEvent(DefaultProcessingSession.java:204)
     at com.tangosol.util.MultiplexingMapListener.entryUpdated(MultiplexingMapListener.java:42)
     at com.tangosol.util.MapEvent.dispatch(MapEvent.java:270)
     at com.tangosol.util.MapEvent.dispatch(MapEvent.java:226)
     at com.tangosol.util.MapListenerSupport.fireEvent(MapListenerSupport.java:557)
     at com.tangosol.coherence.component.util.SafeNamedCache.translateMapEvent(SafeNamedCache.CDB:7)
     at com.tangosol.coherence.component.util.SafeNamedCache.entryUpdated(SafeNamedCache.CDB:1)
     at com.tangosol.util.MapEvent.dispatch(MapEvent.java:270)
     at com.tangosol.coherence.component.util.daemon.queueProcessor.service.grid.partitionedService.PartitionedCache$ViewMap$ProxyListener.dispatch(PartitionedCache.CDB:22)
     at com.tangosol.coherence.component.util.daemon.queueProcessor.service.grid.partitionedService.PartitionedCache$ViewMap$ProxyListener.entryUpdated(PartitionedCache.CDB:1)
     at com.tangosol.util.MapEvent.dispatch(MapEvent.java:270)
     at com.tangosol.coherence.component.util.CacheEvent.run(CacheEvent.CDB:18)
     at com.tangosol.coherence.component.util.daemon.queueProcessor.Service$EventDispatcher.onNotify(Service.CDB:26)
     at com.tangosol.coherence.component.util.Daemon.run(Daemon.CDB:42)
     at java.lang.Thread.run(Thread.java:619)
I have managed to solve this by removing the session.shutdown() call in the class that submits the job for processing using the Processing Pattern. However this seems odd to me
as the submitter should not need to hang around until the job completes (as that is surely the point of the Callback handler). I can of course code around this by having a Singleton
class which keeps the Processing session alive constantly and stores this in the Environment. But the question is why ???
This is running Coherence 3.6 and coherence-processingpattern-1.3.423238.
Would be grateful to know if this is a bug or my understanding is somehow confused !
TIA
Martin

I agree, believe me. However, one goes to war with the army one has, not the army one wishes one had, to quote somebody who, um... okay, failed miserably. Hmm...
It's a flat-rate project, so the troubleshooting isn't costing them any more, and their IT department wags the rest of the company and won't buy stuff. Eventually they'll have CS4 and these problems will go away, but probably not until next year.
If I were willing to give up the CS4-specific features (which I'm not; maximum efficiency in long documents is the core competency of my business), working in CS3 still wouldn't be an option because I don't own it. I'm also not likely to be able to talk the client into the idea that I'll take care of the last-minute tweaks instead of their having to do it all.
(Keep in mind, too, that there's more behind the scenes than I'm necessarily sharing in a quick forum post. If I can keep the typesetting from shifting in the .inx for now, I'm good.)
I filed that bug report--thanks!
UPDATE: Client says it looks right. Off we go...

Similar Messages

  • Processing Pattern Example not working?

    I am trying to run the Processing Pattern example for the first time. I'm using the .cmd files provided with the example.
    The server starts up without error and its logs show loading some Processing Pattern TaskProcessor classes:
    2010-09-28 14:30:47.616/4.839 Oracle Coherence GE 3.5.2/463 <Info> (thread=Thread-4, member=1): Starting dispatcher Task Dispatcher Class:com.oracle.coherence.patterns.processing.dispatchers.AbstractDispatcher
    2010-09-28 14:30:47.632/4.855 Oracle Coherence GE 3.5.2/463 <Info> (thread=SimpleEventDispatcher:Thread-2, member=1): DefaultTask Processor Definition Manager starting Class:com.oracle.coherence.patterns.processing.internal.task.DefaultTaskProcessorDefinitionManager
    2010-09-28 14:30:47.632/4.855 Oracle Coherence GE 3.5.2/463 <Info> (thread=Thread-4, member=1): Starting dispatcher Local Dispatcher Class:com.oracle.coherence.patterns.processing.dispatchers.AbstractDispatcher
    2010-09-28 14:30:47.632/4.855 Oracle Coherence GE 3.5.2/463 <Info> (thread=ReplicatedCache:ReplicatedServiceForProcessingPattern:EventDispatcher, member=1): Registering TaskProcessorDefinition TPD:{Identifier{GridTaskProcessor},Grid Task Processor,GRID} Class:com.oracle.coherence.patterns.processing.dispatchers.task.DefaultTaskDispatcher$1
    2010-09-28 14:30:47.663/4.886 Oracle Coherence GE 3.5.2/463 <Info> (thread=DistributedCache:DistributedServiceForProcessingPattern:EventDispatcher, member=1): TaskProcessorMediator inserted TPSK:{Identifier{GridTaskProcessor},1} Class:com.oracle.coherence.patterns.processing.dispatchers.task.DefaultTaskDispatcher$2
    2010-09-28 14:30:47.663/4.886 Oracle Coherence GE 3.5.2/463 <Info> (thread=DistributedCache:DistributedServiceForProcessingPattern:EventDispatcher, member=1): TaskProcessorMediator inserted TPSK:{Identifier{SingleTaskProcessor},0} Class:com.oracle.coherence.patterns.processing.dispatchers.task.DefaultTaskDispatcher$2
    2010-09-28 14:30:47.679/4.902 Oracle Coherence GE 3.5.2/463 <Info> (thread=ReplicatedCache:ReplicatedServiceForProcessingPattern:EventDispatcher, member=1): Registering TaskProcessorDefinition TPD:{Identifier{SingleTaskProcessor},Single Task Processor,SINGLE} Class:com.oracle.coherence.patterns.processing.dispatchers.task.DefaultTaskDispatcher$1
    However, when I attempt to run the example I'm getting a runtime error:
    "C:\Java\jdk1.5.0_14"\bin\java -Dtangosol.coherence.clusterport=COH_OPTSCLUSTER_PORT -Dtangosol.coherence.cacheconfig=coherence-processingpattern-cac
    he-config.xml -Dtangosol.pof.config=file:/C:\temp\coherence-incubator-examples-1.1.1.14471\resource\processingpattern\examples-pof-config.xml -Dtangos
    ol.coherence.log=C:\temp\coherence-incubator-examples-1.1.1.14471\bin\..\log\PiCalculationSample-9001.log -Dtangosol.coherence.cacheconfig=C:\temp\coh
    erence-incubator-examples-1.1.1.14471\resource\processingpattern\processing-cache-config.xml -Dtangosol.coherence.distributed.localstorage=false -cp C
    :\temp\coherence-incubator-examples-1.1.1.14471\bin\..\lib\coherence-common-1.6.1.14470.jar;C:\temp\coherence-incubator-examples-1.1.1.14471\bin\..\li
    b\coherence-commandpattern-2.6.1.14471.jar;C:\temp\coherence-incubator-examples-1.1.1.14471\bin\..\lib\coherence-functorpattern-1.3.1.14471.jar;C:\tem
    p\coherence-incubator-examples-1.1.1.14471\bin\..\lib\coherence-messagingpattern-2.6.1.14471.jar;C:\temp\coherence-incubator-examples-1.1.1.14471\bin\
    ..\lib\coherence-pushreplicationpattern-2.6.1.14471.jar;C:\temp\coherence-incubator-examples-1.1.1.14471\bin\..\lib\coherence-processingpattern-1.2.1.
    14471.jar;"C:\tools\Coherence-3.5.2"\lib\coherence.jar;C:\temp\coherence-incubator-examples-1.1.1.14471\bin\..\classes -Xms256m -Xmx256m com.oracle.c
    oherence.examples.incubator.processingpattern.task.PiCalculationSample
    Testing PI calculation
    Using the Incubator Extensible Environment for Coherence Cache Configuration
    Copyright (c) 2010, Oracle Corporation. All Rights Reserved.
    java.lang.RuntimeException: Storage is not configured
    at com.tangosol.coherence.component.util.daemon.queueProcessor.service.grid.DistributedCache$BinaryMap.onMissingStorage(DistributedCache.CDB:9
    at com.tangosol.coherence.component.util.daemon.queueProcessor.service.grid.DistributedCache$BinaryMap.addMapListener(DistributedCache.CDB:59)
    at com.tangosol.coherence.component.util.daemon.queueProcessor.service.grid.DistributedCache$ViewMap.addMapListener(DistributedCache.CDB:1)
    at com.tangosol.coherence.component.util.SafeNamedCache.addMapListener(SafeNamedCache.CDB:12)
    at com.tangosol.coherence.component.util.SafeNamedCache.addMapListener(SafeNamedCache.CDB:47)
    at com.oracle.coherence.patterns.processing.internal.DefaultProcessingSession.<init>(DefaultProcessingSession.java:218)
    at com.oracle.coherence.examples.incubator.processingpattern.task.PiCalculationSample.executeSample(PiCalculationSample.java:75)
    at com.oracle.coherence.examples.incubator.processingpattern.task.PiCalculationSample.main(PiCalculationSample.java:56)
    The server log shows an error also after I attempt to run the example:
    *2010-09-28 14:32:54.322/131.545 Oracle Coherence GE 3.5.2/463 <D5> (thread=DistributedCache:DistributedServiceForProcessingPattern, member=1): Service DistributedServiceForProcessingPattern joined the cluster with senior service member 1*
    *2010-09-28 14:32:57.740/134.963 Oracle Coherence GE 3.5.2/463 <Info> (thread=ClientLeaseCoordinator:Thread-5, member=1): Restarting NamedCache: coherence.patterns.processing.taskprocessormediator*
    *2010-09-28 14:32:58.614/135.837 Oracle Coherence GE 3.5.2/463 <Info> (thread=PacketListenerN, member=1): Scheduled senior member heartbeat is overdue; rejoining multicast group.*
    *2010-09-28 14:33:06.232/143.455 Oracle Coherence GE 3.5.2/463 <Info> (thread=PacketListenerN, member=1): Scheduled senior member heartbeat is overdue; rejoining multicast group.*
    *2010-09-28 14:33:13.850/151.073 Oracle Coherence GE 3.5.2/463 <Info> (thread=PacketListenerN, member=1): Scheduled senior member heartbeat is overdue; rejoining multicast group.*
    *2010-09-28 14:33:21.452/158.675 Oracle Coherence GE 3.5.2/463 <Info> (thread=PacketListenerN, member=1): Scheduled senior member heartbeat is overdue; rejoining multicast group.*
    *2010-09-28 14:33:29.054/166.277 Oracle Coherence GE 3.5.2/463 <Info> (thread=PacketListenerN, member=1): Scheduled senior member heartbeat is overdue; rejoining multicast group.*
    *2010-09-28 14:33:36.656/173.879 Oracle Coherence GE 3.5.2/463 <Info> (thread=PacketListenerN, member=1): Scheduled senior member heartbeat is overdue; rejoining multicast group.*
    *2010-09-28 14:33:44.258/181.481 Oracle Coherence GE 3.5.2/463 <Info> (thread=PacketListenerN, member=1): Scheduled senior member heartbeat is overdue; rejoining multicast group.*
    *2010-09-28 14:33:51.766/188.989 Oracle Coherence GE 3.5.2/463 <Error> (thread=PacketListenerN, member=1): Stopping cluster due to unhandled exception: com.tangosol.net.messaging.ConnectionException: Unable to refresh sockets: [UnicastUdpSocket{State=STATE_OPEN, address:port=10.100.153.51:8088}, MulticastUdpSocket{State=STATE_OPEN, address:port=224.3.5.2:8087, InterfaceAddress=10.100.153.51, TimeToLive=4}, TcpSocketAccepter{State=STATE_OPEN, ServerSocket=10.100.153.51:8088}]; last failed socket: MulticastUdpSocket{State=STATE_OPEN, address:port=224.3.5.2:8087, InterfaceAddress=10.100.153.51, TimeToLive=4}*
    *     at com.tangosol.coherence.component.net.Cluster$SocketManager.refreshSockets(Cluster.CDB:91)*
    *     at com.tangosol.coherence.component.net.Cluster$SocketManager$MulticastUdpSocket.onInterruptedIOException(Cluster.CDB:9)*
    *     at com.tangosol.coherence.component.net.socket.UdpSocket.receive(UdpSocket.CDB:33)*
    *     at com.tangosol.coherence.component.net.UdpPacket.receive(UdpPacket.CDB:4)*
    *     at com.tangosol.coherence.component.util.daemon.queueProcessor.packetProcessor.PacketListener.onNotify(PacketListener.CDB:19)*
    *     at com.tangosol.coherence.component.util.Daemon.run(Daemon.CDB:42)*
    *     at java.lang.Thread.run(Thread.java:595)*
    Caused by: java.net.SocketTimeoutException: Receive timed out
    *     at java.net.PlainDatagramSocketImpl.receive0(Native Method)*
    *     at java.net.PlainDatagramSocketImpl.receive(PlainDatagramSocketImpl.java:136)*
    *     at java.net.DatagramSocket.receive(DatagramSocket.java:712)*
    *     at com.tangosol.coherence.component.net.socket.UdpSocket.receive(UdpSocket.CDB:20)*
    *     at com.tangosol.coherence.component.net.UdpPacket.receive(UdpPacket.CDB:4)*
    *     at com.tangosol.coherence.component.util.daemon.queueProcessor.packetProcessor.PacketListener.onNotify(PacketListener.CDB:19)*
    *     at com.tangosol.coherence.component.util.Daemon.run(Daemon.CDB:42)*
    *     at java.lang.Thread.run(Thread.java:595)*
    Has anyone had similar experiences? Any advice to help me understand and get this going would be appreciated.
    Thanks !!

    I have same problem.
    Midi trigger patern correctly. When trying idividual souds, it works but running sequencer do not trigger sound.
    HW MacBook Pro (model 2008)
    Soudcard: MOTU 828, M-Audio ozonic, internal speaker
    Midi: Korg nanoPad, Roland Fantom, m-audio Ozonic,
    I invesigate and i found out this:
    1)
    When open MainStage and automaticaly load Concert, pres midi key - no sound
    Then I close just concert not MainStage, open recent concert (same), press midi key - seq playing, soud works
    2)
    Switch of automatic loading last opened Concert, quit and start MainStage, open Concert manualy and no sound.
    Close concert, open again, soud works
    3)
    Switch automatic concert loading on, open MainStage - no sound
    Open preferences, audio / change buffer size, hit applay - sound works
    4)
    Setup previous buffer size, change routing to buffer
    Restart MainStage, no sound, change routing back to output - no sound
    Change audio driver to System Setting - sound works - system setting goes to same soundcard
    Restart MainStage - no sound
    Change system sound output to Internal Speaker - no sound
    Change system sound output to soundcard - sound works
    5)
    Preferences - change audio to System settings, switch off I/O Safety Buffer - below Buffer Size setting
    Restart Mainstage - SOUND WORKS
    Restart MainStage again - SOUD WORKS

  • Items in session state not behaving as expected

    And again...
    (I hope I'm not asking too much, posting 2 new questions in under 5 min....)
    This is something new I experienced: I need to show the value of an item (P210_EXTERNAL_ID) on a page (P215)
    ... not a big thing I thought... BUT when I tried to do this I hit the ground pretty rough (I thought I had actually gained some knowledge about html-db.)
    My problem is that I pass on a lot of values from P200 (the report) to P215 (the form) and I reached the limit of characters, that can be used to specify the link (to P215).
    So I thought to myself: Well, lets do it different!
    I tried:
    - specifying a default for the item on P215: P215_EXTERNAL_ID,
    - specifying the source for P215_EXTERNAL_ID,
    - creating a computation on P215_EXTERNAL_ID,
    - filling P215_EXTERNAL_ID 'manually' with a process...
    none of these did play the trick for me.
    (By the way, I used both syntaxes to reference :P210_EXTERNAL_ID and &P210_EXTERNAL_ID.)
    I used Display as Text (saves state) for the item on P215: P215_EXTERNAL_ID,
    the item on P210: P210_EXTERNAL_ID is a Text Field.
    The unexpected thing I experienced, was that the Item on P215 stayed empty or lagged behind:
    - visit P210 with P210_EXTERNAL_ID = 1234
    --- branch to P215 (P215_EXTERNAL_ID is empty)
    - revisit P210 with P210_EXTERNAL_ID = 5
    --- branch to P215 (P215_EXTERNAL_ID = 1234)
    - revisit P210 with P210_EXTERNAL_ID = 66
    --- branch to P215 (P215_EXTERNAL_ID = 5)
    After realizing this I took a look at the session (with the link at the bottom of each page).
    And in the Session State the value of P210_EXTERNAL_ID was the old value (always one behind)!!!
    Has anybody ever seen something like this??
    I'm really running out of ideas here.
    -David-

    Bill,
    Usually I use the pass-on-only-the-PK method too, but here I built something like a consolidated view on a table: one row in the report doesn't correspond to one row in the table, but a group of rows, that are located in the same freezer, same shelf, same rack and same box. So the PK woun't work here b/c I don't have one in the first place... But the thing with referencing other pages items might do the trick to bring down the number of other values I pass on.
    Another thought with the example:
    - visit P210 with P210_EXTERNAL_ID = 1234
    --- branch to P215 (P215_EXTERNAL_ID is empty)
    - revisit P210 with P210_EXTERNAL_ID = 5
    --- branch to P215 (P215_EXTERNAL_ID = 1234)
    - revisit P210 with P210_EXTERNAL_ID = 66
    --- branch to P215 (P215_EXTERNAL_ID = 5)
    When I click on the edit button on P210 to go to P215, is the page P210 not submitted?
    If that's the case, I understand why P210_EXTERNAL_ID in Session State has the last, but not the current value.... Since I branche off that page before submit, the items current values are not written to session state.
    Anyone any thoughts to that???
    -David-

  • CFLogin Not Behaving as Expected

    Hello,
    I'm creating a login system based on one in the live articles (found here: http://help.adobe.com/en_US/ColdFusion/9.0/Developing/WSc3ff6d0ea77859461172e0811cbec22c24 -7c30.html#WSc3ff6d0ea77859461172e0811cbec0c8f9-7fdf ) Basically, am trying to modify the files so that the Application.cfc sets variables and returns them to the loginform (if login fails) or redirects to a secured page if login succeeds.
    Here's my modified code: (I've added comments here in blue to explain my logic)
    Application.cfc
    <cfcomponent>
    <cfset This.name = "LoginAdminTool">
    <cfset This.Sessionmanagement="True">
    <cfset This.loginstorage="session">
    <cffunction name="OnRequestStart">
        <cfargument name = "request" required="true"/>
        <cfif IsDefined("Form.logout")>
            <cflogout>
        </cfif>
        <cflogin>
            <cfif NOT IsDefined("cflogin")>
                <cfinclude template="loginform.cfm">
                <cfabort>
            <cfelse>
                <cfset Session.loginErrEmptyString = "False"> This resets values of variables in the login form
                <cfset Session.loginErrInvalidString = "False"> This resets values of variables in the login form
                <cfif cflogin.name IS "" OR cflogin.password IS ""> 
                    <cfoutput>
                        <cfset Session.loginErrEmptyString = "True"> If the string is empty, set the variable to true, return to login
                        <cflocation url="loginform.cfm">
                    </cfoutput>
                    <cfabort>
                <cfelse>
                    <cfquery name="loginQuery" dataSource="myds"> If there is a  value, validate it against my db...
                    SELECT userName, userPass, userRole
                    FROM security
                    WHERE
                        userName = '#cflogin.name#'
                        AND userPass = '#cflogin.password#'
                    </cfquery>
                    <cfif loginQuery.userRole NEQ "">
                        <cfloginuser name="#cflogin.name#" Password = "#cflogin.password#" roles="#loginQuery.userRole#">
                        <cfset Session.userLoggedIn = "True"> if a result comes back, setuser logged in to true and redirect him to index.cfm
                        <cflocation url="index.cfm">
                    <cfelse>
                        <cfoutput>
                            <cfset Session.loginErrInvalidString = "True"> Otherwise login is invalid... return to form
                            <cflocation url="loginform.cfm">
                        </cfoutput>    
                        <cfabort>
                    </cfif>
                </cfif>    
            </cfif>
        </cflogin>
    </cffunction>
    </cfcomponent>
    And here is the form:
                    <cfoutput>
                    <form action="#CGI.script_name#?#CGI.query_string#" method="Post">
                    <fieldset>
                    <ul class="logIn">
                        <li><label for="userName">Username</label></li>
                        <li><input type="text" name="j_username" id="userName"></li>
                        <li><label for="userPass">Password</label></li>
                        <li><input type="password" name="j_password" id="userPass"></li>
                        <li><input type="submit" value="Log In"></li>
                    </ul>
                    </fieldset>             
                    </form>
                    </cfoutput>
                </div><!--/box_sml-->
                <div class="box">
                    <cfif Session.LoginErrEmptyString IS "True"> If the strings were empty error comes back, the page displays this error code
                        <cfoutput>
                        <h2>You must enter text in both the Username and Password fields.</h2>
                        </cfoutput>
                    <cfelse>                   
                        <cfif Session.LoginErrInvalidString IS "True"> If login is invalid, it does that
                            <cfoutput>
                            <h2>The login information entered is invalid. Please Try again.</h2>
                            </cfoutput>
                        </cfif>
                    </cfif>
                    <cfdump var="#cgi#">
                    <cfdump var="#session#">
    The problem i am having is that, even when I am logging in correctly, the Application.cfc is not redirecting to index.cfm.... does anyone know the cause of this issue? Any help would be great appreciated... I'm sure there are many ways to code my logic better, but my intent was to avoid Application.cfc dumping html tags above the include="loginform.cfm" tag as per original script. I want to create my error messages within the form page itself..

    Test by replacing <cfif loginQuery.userRole NEQ ""> with <cfif loginQuery.recordcount GT 0>

  • Front panels of multiple processes called do not overlap as expected

    Hello-  
    I'm hoping this solution is simple, but who knows. 
    My situation is as follows:
    I have a Main.vi that calls 2 processes (Remote.vi and Motion.vi) via 'start async call', right after the Main.vi calls them, it calls UI.vi via 'call by reference'.
    the remote and motion vis are supposed to be entirely background processes, no visual presence at all.  The UI, is the user interface that's supposed to take up the whole screen.
    The problem is that the motion vi's front panel is coming up in front of the UI (how rude of it... vi has no manners).  
    I'm not quite sure why this is happening, seeing as they are called in that order...
    any help is greatly appreciated.
    thanks

    If you want a launcher that start-up stuff and then closes itself and lets them run, then opening a ref to it's own FP is a method that will keep the VI in mmemory and thereby avoiding the LV clean-up tossing the launched when the launcher exits.
    Ben
    Ben Rayner
    I am currently active on.. MainStream Preppers
    Rayner's Ridge is under construction

  • Cache Management: Firefox does not behave as expected when setting cache preferences

    I presently play a game online and override my cache management. I Set in the preferences the following parameters.
    browser.cache.disk.max_entry_size = 2000:
    browser.cache.disk.smart_size.enabled = false
    However, when I check the properties of the cache folder it currently shows 2200.
    Here is a subset of the problem I am experiencing. There are alot of files stored in cache_001, 002 and 003 which do not get stored on disk. I use mozillacacheview to view the cache. Is there a way to remove these files without deleting the entire cache.

    no problem, i'm not sure if understand your follow-up question correctly. _cache_001_ 002, 003 contain a mix of index files, metadata and data of the cache itself, so it woudn't be safe to delete those whole files in windows when you want to keep the integrity of the cache intact. i don't know if mozillacacheview offers the option to selectively remove files from the cache, but i think this extension does: [https://addons.mozilla.org/firefox/addon/cacheviewer-continued/]

  • BufferedInputStream does not behave as expected in HP-UX

    Hi !
    I don't know if anybody experienced similar problem before.
    I have this code:
    try{
              BufferedInputStream     bis=new BufferedInputStream(ios,bufferSize*1024*1024);
              log.debug("The mark support val in retrieveFileRemote: "+bis.markSupported());
              //archive in source
              //mark as resetable
              bis.mark(0);
              archiveFile(filename,bis);
              bis.reset();
              if(!commandOK){
                   //TODO: log some error here
                   log.error("There is something wrong in the process of retrieving the file: "+filename+" in "+getHost());
                   eAlert.setEmBody("There is something wrong in the process of retrieving the file: "+filename+" in"+getHost());
                   eAlert.sendEmail();
                   return bis;
              return bis;
              }catch(Exception e){
                   log.error("something wrong in BufferedInputStream",e);
              }what it does is just initialize an InoutStream into BufferedInputStream to be able to be marked and reset for reuse. This is a part of my webapps and run under Tomcat 5.0.28. The code works well in Windows box, but when I deploy the exact same code in HP-UX it does not return the value to me. the 'bis' is just null and it doesn't return any error either.
    The bufferSize was set to 50. So it is quite large. Would this be a problem in UNIX ? Do I need to chane the heap size setting ? I'm using default setting from Tomcat.
    Thanks for any comment.

    Need to see more of you program. Make sure you're not working against UNIX file permissions.

  • Purge Cache by Table not behaving as expected

    Hello Gurus,
    We are using OBIEE 10.1.3.3.1.
    We have requirement where we need to Purge the cache by Table.
    So I am using ODBC function:
    Call SAPurgeCacheByTable ('DBName','Catalog','Schema','Physical Table');
    so when I run this from cmd prompt :
    nqcmd -d AnalyticsWeb -u Username -p password -s C:\OracleBI\Server\Bin\clear_cache.txt
    I got the result message as succeeded like below:
    [59118] Operation SAPurgeCacheByTable succeeded!
    row count 1
    Processed Queries 1
    But the thing is Local cache and web cache is not getting purged (.TBL files)
    Please help to resolve this issue.
    Thanks
    Kanna

    Hi,
    the problem is that OBIEE 10.1.3.4.0 ha a bug, see the support document SAPurgeCacheByTable and SAPurgeCacheByDatabase not working [ID 787797.1].
    The bug is logged as Bug 6906535 and it is fixed in the next release which is 11.1.
    There is currently no fix for 10.1.3.4.
    The support proposes to use SAPurgeAllCache() as a workaround.
    I hope it helps.
    Regards,
    Gianluca Ancarani

  • Reader not behaving as expected...

    I'm trying to read from a java.io.Reader and I am not getting the -1 at the end of the input as expected. My code is below.
    The while(true) loop, which is the outerloop, should be broken out of as soon as the -1 is read. The problem is that the -1 is never read and the loop ends up looping infinitely.
    Any ideas?
    Reader reader = parser.getReader();
    String text = "";
    outerloop:while (true)
        if ( ! reader.ready()) Thread.sleep(50);
        innerloop:while (rdr.ready())
            int c = rdr.read();
            if (c==-1)  break outerloop;
            text += (char)c;
    }

    1) if the reader wasn't ready what assures that it
    will be ready after 50 ms?Nothing does. However, if it is not ready, then the following loop will simply not execute and the main loop will start over and it will wait another 50 ms. The alternative of putting the Thread.sleep(50) line in a loop as follows...
    while ( ! reader.ready()) Thread.sleep(50);...has gotten me in trouble in the past when the reader is finished and so is never ready, so I just end up sleeping over and over again. Of course my current implementation is also giving me an infinite loop since I'm never reading the -1, so I guess I haven't gained much.
    2) to what is that reader connected? If the reader is connect to, say, the
    standard input (keyboard), it won't return -1 unless you type ctrl-D (unix
    flavour) or ctrl-Z (ms flavour). If the reader is connected to a socket, the
    other side has to close the socket in order for your reader to detect an
    EOF condition.The reader provided by an objecet in the Apache Jakarta Lucene package. It is an HTML Parser that takes an HTML document and is supposed to write out just the text after stripping all the tags. I am supposed to be able to read this text using the Reader.
    It has occured to me that perhaps the object is not writing -1 when it is finished or is not closing the stream. In this case it would appear that whoever programmed that class did not do what he was supposed to. I'm skeptical of this line of reasoning, however, because the Apache Jakarta stuff is pretty reputable and I don't think this is just a mistake on their end.
    The object that I get the reader from launches a new thread when I call the getReader() method. Somehow this thread has to signal that it is done with the processing and I have received all the input I am ever going to get. I just don't know what this signal is. The "-1" signal that the API tells me I should get never arrives.
    Thanks for your help. Any more help would be appreciated.

  • Venue 11 Pro - Slim Keyboard not behaving as expected or it should.

    I recently received the slim keyboard from dell for my Venue 11 Pro - Baytrail tablet.    Overall I like the quality and functionality, although I too like others have encountered the intermittent non-functional keyboard, but that's not the subject of this post.
    I have noticed a couple items in its behavior that don't work as you would expect and I hope can be corrected via software. 
    1. When the keyboard is attached but folded back behind the tablet (ie the keyboard is not in use) the on screen keyboard will not appear.  This makes it hard to use the device as a tablet as anytime data entry is required you need to unfold the keyboard and hold it somehow while you type then fold it back behind the screen to continue tablet use.   When folding the keyboard behind the unit its just as important to make the on screen keyboard available as it is to stop the keyboard itself from functioning,  right now the keyboard stops working as it should be no alternative input is available. 
    2. In much the same way as item #1.  When the keyboard is attached but folded back behind the tablet orientation is locked so the screen will not rotate to portrait or landscape mode at need.  So if you were carrying it with the cover / slim keyboard on and opened it up, folding the keyboard behind the screen the screen is stuck in landscape mode.   The only method ive found to change its orientation is to go to desktop and run the intel graphics app to edit the orientation.
    Combined this makes the slim keyboard worse than useless in several usage scenarios.   I want the slim keyboard for the occasional need to input more data than is practical on the touch screen AND to protect the tablet.... but if your usage is more tablet than notebook you will find yourself constantly working around these limitations.   
    You have a great product here, but you really need to take a page from the surface playbook here.   They kind of set the standard and expectations for how keyboard covers on tablets should work and while I really like the hardware the usage is awkward as it stands. 

    Just got our first Venue 11 into the office and was very disappointed to find this thread already active.  Yes, this is a very simple use-case where someone will have the slim keyboard connected and then flip it back to use the onscreen keyboard for the modern UI.  Auto screen rotation and pop-up onscreen keyboard really are a must when the keyboard is flipped back.  Not sure how that very basic behavior could have been missed in testing.  Hoping for a resolution soon...

  • BDC not behaving as expected

    Hi all,
    I had done BDC for FB05. It was working fine.
    Now the requirement changed a bit and I need to pass one more field special gl indicator.
    So I added a line in the FM i created using the recording and expected that bdc should work fine. But it didn't . The filed get populated correctly but then the next screen data is not getting populated . Any Idea what could be the problem.
    perform bdc_field       using 'RF05A-NEWUM'
                                  SPL_GL_LINE_1.
    FUNCTION ZFM_FB05_BDC_BILL.
    *"*"Local Interface:
    *"  IMPORTING
    *"     VALUE(CTU) LIKE  APQI-PUTACTIVE DEFAULT 'X'
    *"     VALUE(MODE) LIKE  APQI-PUTACTIVE DEFAULT 'N'
    *"     VALUE(UPDATE) LIKE  APQI-PUTACTIVE DEFAULT 'L'
    *"     VALUE(GROUP) LIKE  APQI-GROUPID OPTIONAL
    *"     VALUE(USER) LIKE  APQI-USERID OPTIONAL
    *"     VALUE(KEEP) LIKE  APQI-QERASE OPTIONAL
    *"     VALUE(HOLDDATE) LIKE  APQI-STARTDATE OPTIONAL
    *"     VALUE(NODATA) LIKE  APQI-PUTACTIVE DEFAULT '/'
    *"     VALUE(BLDAT_001) LIKE  BDCDATA-FVAL DEFAULT '09/09/2010'
    *"     VALUE(BLART_002) LIKE  BDCDATA-FVAL DEFAULT 'sa'
    *"     VALUE(BUKRS_003) LIKE  BDCDATA-FVAL DEFAULT 'K101'
    *"     VALUE(BUDAT_004) LIKE  BDCDATA-FVAL DEFAULT '09/09/2010'
    *"     VALUE(MONAT_005) LIKE  BDCDATA-FVAL DEFAULT '9'
    *"     VALUE(WAERS_006) LIKE  BDCDATA-FVAL DEFAULT 'USD'
    *"     VALUE(DOCID_007) LIKE  BDCDATA-FVAL DEFAULT '*'
    *"     VALUE(NEWBS_008) LIKE  BDCDATA-FVAL DEFAULT '09'
    *"     VALUE(NEWKO_009) LIKE  BDCDATA-FVAL DEFAULT '1000021'
    *"     VALUE(SPL_GL_LINE_1) LIKE  BDCDATA-FVAL DEFAULT '2'
    *"     VALUE(WRBTR_010) LIKE  BDCDATA-FVAL DEFAULT '100'
    *"     VALUE(ZFBDT_011) LIKE  BDCDATA-FVAL DEFAULT '09/09/2010'
    *"     VALUE(AGBUK_012) LIKE  BDCDATA-FVAL DEFAULT 'K101'
    *"     VALUE(AGKON_013) LIKE  BDCDATA-FVAL DEFAULT '100000'
    *"     VALUE(AGKOA_014) LIKE  BDCDATA-FVAL DEFAULT 'D'
    *"     VALUE(AGUMS_015) LIKE  BDCDATA-FVAL DEFAULT '1'
    *"     VALUE(XNOPS_016) LIKE  BDCDATA-FVAL DEFAULT ''
    *"     VALUE(ABPOS_017) LIKE  BDCDATA-FVAL DEFAULT '1'
    *"     VALUE(ABPOS_018) LIKE  BDCDATA-FVAL DEFAULT '1'
    *"     VALUE(ABPOS_019) LIKE  BDCDATA-FVAL DEFAULT '1'
    *"     VALUE(ABPOS_020) LIKE  BDCDATA-FVAL DEFAULT '1'
    *"     VALUE(XPOS1_01_021) LIKE  BDCDATA-FVAL DEFAULT ''
    *"     VALUE(XPOS1_03_022) LIKE  BDCDATA-FVAL DEFAULT 'X'
    *"     VALUE(SEL01_01_023) LIKE  BDCDATA-FVAL DEFAULT '100000002'
    *"     VALUE(ABPOS_024) LIKE  BDCDATA-FVAL DEFAULT '1'
    *"     VALUE(ABPOS_025) LIKE  BDCDATA-FVAL DEFAULT '1'
    *"     VALUE(ABPOS_026) LIKE  BDCDATA-FVAL DEFAULT '1'
    *"     VALUE(PSZAH_01_027) LIKE  BDCDATA-FVAL DEFAULT '             50'
    *"     VALUE(ABPOS_028) LIKE  BDCDATA-FVAL DEFAULT '1'
    *"     VALUE(ABPOS_029) LIKE  BDCDATA-FVAL DEFAULT '1'
    *"     VALUE(XPOS1_01_030) LIKE  BDCDATA-FVAL DEFAULT ''
    *"     VALUE(XPOS1_03_031) LIKE  BDCDATA-FVAL DEFAULT 'X'
    *"     VALUE(SEL01_01_032) LIKE  BDCDATA-FVAL DEFAULT '100000000'
    *"     VALUE(ABPOS_033) LIKE  BDCDATA-FVAL DEFAULT '1'
    *"     VALUE(ABPOS_034) LIKE  BDCDATA-FVAL DEFAULT '1'
    *"     VALUE(ABPOS_035) LIKE  BDCDATA-FVAL DEFAULT '1'
    *"     VALUE(PSZAH_01_036) LIKE  BDCDATA-FVAL DEFAULT '             50'
    *"     VALUE(ABPOS_037) LIKE  BDCDATA-FVAL DEFAULT '1'
    *"     VALUE(DOC_LIST) TYPE  ZTT_DOC_LIST
    *"  EXPORTING
    *"     VALUE(SUBRC) LIKE  SYST-SUBRC
    *"  TABLES
    *"      MESSTAB STRUCTURE  BDCMSGCOLL OPTIONAL
    data wa_doc_list type zst_doc_list.
    subrc = 0.
    perform bdc_nodata      using NODATA.
    perform open_group      using GROUP USER KEEP HOLDDATE CTU.
    perform bdc_dynpro      using 'SAPMF05A' '0122'.
    perform bdc_field       using 'BKPF-BLDAT'
                                  BLDAT_001.
    perform bdc_field       using 'BKPF-BLART'
                                  BLART_002.
    perform bdc_field       using 'BKPF-BUKRS'
                                  BUKRS_003.
    perform bdc_field       using 'BKPF-BUDAT'
                                  BUDAT_004.
    perform bdc_field       using 'BKPF-MONAT'
                                  MONAT_005.
    perform bdc_field       using 'BKPF-WAERS'
                                  WAERS_006.
    perform bdc_field       using 'FS006-DOCID'
                                  DOCID_007.
    perform bdc_field       using 'RF05A-NEWBS'
                                  NEWBS_008.
    perform bdc_field       using 'RF05A-NEWKO'
                                  NEWKO_009.
    *perform bdc_field       using 'RF05A-NEWUM'
    *                              SPL_GL_LINE_1.  " Uncomment this line and the next screen '0301' values don't get populated.
    perform bdc_field       using 'BDC_CURSOR'
                                  'RF05A-NEWUM'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_dynpro      using 'SAPMF05A' '0301'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'BSEG-WRBTR'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=SL'.
    perform bdc_field       using 'BSEG-WRBTR'
                                  WRBTR_010.
    perform bdc_field       using 'BSEG-ZFBDT'
                                  ZFBDT_011.
    perform bdc_dynpro      using 'SAPMF05A' '0710'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'RF05A-AGUMS'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=PA'.
    perform bdc_field       using 'RF05A-AGBUK'
                                  AGBUK_012.
    perform bdc_field       using 'RF05A-AGKON'
                                  AGKON_013.
    perform bdc_field       using 'RF05A-AGKOA'
                                  AGKOA_014.
    perform bdc_field       using 'RF05A-AGUMS'
                                  AGUMS_015.
    perform bdc_field       using 'RF05A-XNOPS'
                                  XNOPS_016.
    perform bdc_dynpro      using 'SAPDF05X' '3100'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=PART'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'RF05A-ABPOS'.
    perform bdc_field       using 'RF05A-ABPOS'
                                  ABPOS_017.
    perform bdc_dynpro      using 'SAPDF05X' '3100'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=OMX'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'RF05A-ABPOS'.
    perform bdc_field       using 'RF05A-ABPOS'
                                  ABPOS_018.
    perform bdc_dynpro      using 'SAPDF05X' '3100'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=Z-'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'RF05A-ABPOS'.
    perform bdc_field       using 'RF05A-ABPOS'
                                  ABPOS_019.
    * here !!
    loop at doc_list into wa_doc_list.
    perform bdc_dynpro      using 'SAPDF05X' '3100'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=OSU'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'RF05A-ABPOS'.
    perform bdc_field       using 'RF05A-ABPOS'
                                  ABPOS_020.
    perform bdc_dynpro      using 'SAPDF05X' '2000'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'RF05A-XPOS1(03)'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=GO'.
    perform bdc_field       using 'RF05A-XPOS1(01)'
                                  XPOS1_01_021.
    perform bdc_field       using 'RF05A-XPOS1(03)'
                                  XPOS1_03_022.
    perform bdc_dynpro      using 'SAPDF05X' '0731'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'RF05A-SEL01(01)'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=GO'.
    perform bdc_field       using 'RF05A-SEL01(01)'
    *                              SEL01_01_023.
                                   wa_doc_list-belnr.
    perform bdc_dynpro      using 'SAPDF05X' '3100'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=OMX'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'RF05A-ABPOS'.
    perform bdc_field       using 'RF05A-ABPOS'
                                  ABPOS_024.
    perform bdc_dynpro      using 'SAPDF05X' '3100'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=Z+'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'RF05A-ABPOS'.
    perform bdc_field       using 'RF05A-ABPOS'
                                  ABPOS_025.
    perform bdc_dynpro      using 'SAPDF05X' '3100'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'DF05B-PSZAH(01)'.
    perform bdc_field       using 'RF05A-ABPOS'
                                  ABPOS_026.
    perform bdc_field       using 'DF05B-PSZAH(01)'
    *                              PSZAH_01_027.
                                  wa_doc_list-WRBTR.
    "here
    perform bdc_dynpro      using 'SAPDF05X' '3100'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=OSE'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'DF05B-PSZAH(01)'.
    perform bdc_field       using 'RF05A-ABPOS'
                                  ABPOS_028.
    endloop.
    *perform bdc_dynpro      using 'SAPDF05X' '3100'.
    *perform bdc_field       using 'BDC_OKCODE'
    *                              '=OSU'.
    *perform bdc_field       using 'BDC_CURSOR'
    *                              'RF05A-ABPOS'.
    *perform bdc_field       using 'RF05A-ABPOS'
    *                              ABPOS_029.
    *perform bdc_dynpro      using 'SAPDF05X' '2000'.
    *perform bdc_field       using 'BDC_CURSOR'
    *                              'RF05A-XPOS1(03)'.
    *perform bdc_field       using 'BDC_OKCODE'
    *                              '=GO'.
    *perform bdc_field       using 'RF05A-XPOS1(01)'
    *                              XPOS1_01_030.
    *perform bdc_field       using 'RF05A-XPOS1(03)'
    *                              XPOS1_03_031.
    *perform bdc_dynpro      using 'SAPDF05X' '0731'.
    *perform bdc_field       using 'BDC_CURSOR'
    *                              'RF05A-SEL01(01)'.
    *perform bdc_field       using 'BDC_OKCODE'
    *                              '=GO'.
    *perform bdc_field       using 'RF05A-SEL01(01)'
    **                              SEL01_01_032.
    *                              wa_doc_list-WRBTR.
    *perform bdc_dynpro      using 'SAPDF05X' '3100'.
    *perform bdc_field       using 'BDC_OKCODE'
    *                              '=OMX'.
    *perform bdc_field       using 'BDC_CURSOR'
    *                              'RF05A-ABPOS'.
    *perform bdc_field       using 'RF05A-ABPOS'
    *                              ABPOS_033.
    *perform bdc_dynpro      using 'SAPDF05X' '3100'.
    *perform bdc_field       using 'BDC_OKCODE'
    *                              '=Z+'.
    *perform bdc_field       using 'BDC_CURSOR'
    *                              'RF05A-ABPOS'.
    *perform bdc_field       using 'RF05A-ABPOS'
    *                              ABPOS_034.
    *perform bdc_dynpro      using 'SAPDF05X' '3100'.
    *perform bdc_field       using 'BDC_OKCODE'
    *                              '/00'.
    *perform bdc_field       using 'BDC_CURSOR'
    *                              'DF05B-PSZAH(01)'.
    *perform bdc_field       using 'RF05A-ABPOS'
    *                              ABPOS_035.
    *perform bdc_field       using 'DF05B-PSZAH(01)'
    *                              PSZAH_01_036.
    *"here
    perform bdc_dynpro      using 'SAPDF05X' '3100'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=BU'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'DF05B-PSZAH(01)'.
    perform bdc_field       using 'RF05A-ABPOS'
                                  ABPOS_037.
    perform bdc_transaction tables messtab
    using                         'FB05'
                                  CTU
                                  MODE
                                  UPDATE.
    if sy-subrc <> 0.
      subrc = sy-subrc.
      exit.
    endif.
    perform close_group using     CTU.
    ENDFUNCTION.
    INCLUDE BDCRECXY .

    I agree with Sujay.......redo recording...
    The reason of error maight be the GL Indicator.....
    Check the combination of Posting Key & GL Indicator exits or not.......by posting directly thru txn FB05....
    With the GL indicator & Posting key...might be the next screen no. changes.....just check...wild guess....
    If so....Redo the recording for each combination of PK & GL Ind.
    Thnx
    RK

  • Checkboxes not behaving as expected

    All,
         I am pulling my hair out here.  I have a movieclip that contains some checkboxes "preferences_mc".  I have an xml file that is loaded in and has an element called "isUnique" which has children with unique names like id, title, version and such.  What I am trying to accomplish is for the form I am building to be able to select/deselect each checkbox and save the selection out to an xml file.  I have gotten that far and everything is working perfectly.  My problem is that after I load the xml back in and try to set the checkbox.selected = xmlPrefs.isUnique.id to get the checkbox to use the data from the xml file to decide whether it is selected or deselected, it ALWAYS selects the box whether it is true or false.  I have tried everything.  xmlPrefs.isUnique.id traces out as false which is correct but the screen still shows the checkbox selected.  I even tried casting the xml as a Boolean and it still returns as a selected checkbox.  I can select/deselect each checkbox and save the preferences out to an xml file correctly as well as read it back in correctly, it just will NOT set the checkboxes selection correctly.  Anyone have a clue because apparently, I am lost.  Oh, by the way, I also tried creating a new instance in actionscript and tried to assign the .selected property and then addChild and it STILL comes out selected even though it traces false.

    Hi,
    Try this:
    var isUnique:Boolean = ( xmlPrefs.isUnique.id == "true" ) ? true : false;
    checkbox.selected = isUnique;
    Actually, when fetching values from xml, they come as string and hence just type-casting them will only return true as it just check for a value to be present.
    Warm Regards
    Deepanjan Das
    http://deepanjandas.wordpress.com/

  • Trigger not behaving as expected

    I have the following trigger on my table. I want to log in records which fail to insert into my main table RTS_EXCEL_UPLOAD into my audit table RTS_EXCEL_UPLOAD_BK. However, when I try to insert a bad record into my main table it throws an exception but does not log the record into RTS_EXCEL_UPLOAD_BK.
    CREATE OR REPLACE TRIGGER TRG_RTS_EXCEL_UPLOAD_BF_I
    BEFORE INSERT ON RTS_EXCEL_UPLOAD
    FOR EACH ROW
    DECLARE
    PRAGMA AUTONOMOUS_TRANSACTION;
    BEGIN
    INSERT INTO RTS_EXCEL_UPLOAD_BK
    (LG_NAME,LG_CODE,PRODUCT_CODE,RTS_PERCENTAGE,LAST_UPDATE_DATE,LAST_UPDATE_USER,COUNTRY_ID)
    VALUES
    (:new.LG_NAME,:new.LG_CODE,:new.PRODUCT_CODE,:new.RTS_PERCENTAGE,:new.LAST_UPDATE_DATE,:new.LAST_UPDATE_USER,:new.COUNTRY_ID)
    DBMS_OUTPUT.PUT_LINE('TRIGGER FIRED');
    COMMIT;
    EXCEPTION
    WHEN OTHERS THEN
    DBMS_OUTPUT.PUT_LINE('TRIGGER NOT FIRED');
    END;
    CREATE TABLE RTS_EXCEL_UPLOAD_BK
    (LG_NAME VARCHAR2(256)
    ,LG_CODE VARCHAR2(256)
    ,PRODUCT_CODE VARCHAR2(256)
    ,RTS_PERCENTAGE VARCHAR2(256)
    ,LAST_UPDATE_DATE VARCHAR2(256)
    ,LAST_UPDATE_USER VARCHAR2(256)
    ,COUNTRY_ID VARCHAR2(256));
    CREATE TABLE RTS_EXCEL_UPLOAD
    ((LG_NAME VARCHAR2(256)
    ,LG_CODE NUMBER
    ,PRODUCT_CODE VARCHAR2(256)
    ,RTS_PERCENTAGE VARCHAR2(256)
    ,LAST_UPDATE_DATE VARCHAR2(256)
    ,LAST_UPDATE_USER VARCHAR2(256)
    ,COUNTRY_ID VARCHAR2(256));
    INSERT INTO RTS_EXCEL_UPLOAD (LG_CODE)VALUES('A1');
    this is not inserting record into my audit table RTS_EXCEL_UPLOAD_BK as expected.

    Hi,
    You can use FORALL SAVE EXCEPTIONS to audit in your backup table.
    Let us see the example below :
    create table test_tab
    col1 number,
    col2 varchar2(20),
    constraint test_tab_ck check  ( col1 in (1,2,3))
    create table test_tab_bk
    col1 number,
    col2 varchar2(20)
    SET serveroutput ON
    DECLARE
         CURSOR cur_insert
         IS
         SELECT
              ROUND(dbms_random.value(1,4)) AS col1,
              '#######'                     AS col2
         FROM
              dual
         CONNECT BY level <= 10;
         TYPE rec_insert_tbl IS   TABLE OF cur_insert%ROWTYPE INDEX BY PLS_INTEGER;
         insert_tbl rec_insert_tbl;
         /* Exceptions */
         dml_errors EXCEPTION;
         PRAGMA EXCEPTION_INIT(dml_errors, -24381);
         /*Variables*/
         w_error_count NUMBER;
    BEGIN
         OPEN cur_insert;
         FETCH cur_insert bulk collect INTO insert_tbl;
         BEGIN
         FORALL idx IN insert_tbl.FIRST .. insert_tbl.LAST SAVE EXCEPTIONS
         INSERT
         INTO
           test_tab
              col1,
              col2
           VALUES
              insert_tbl(idx).col1,
              insert_tbl(idx).col2
         EXCEPTION
              WHEN dml_errors THEN
              w_error_count := SQL%BULK_EXCEPTIONS.count;
              FOR i  IN 1 .. w_error_count
              LOOP
                dbms_output.put_line ( 'Error: ' || i || ' Array Index: ' || SQL%BULK_EXCEPTIONS(i).error_index
                || ' Message: ' || SQLERRM(-SQL%BULK_EXCEPTIONS(i).ERROR_CODE) ) ;
                  /* Again looping through the data which is to inserted */
                   FOR idx IN  insert_tbl.FIRST .. insert_tbl.LAST
                   LOOP
                        /* If the index of the cursor is same as error index, insert in the Backup table */
                        IF idx = SQL%BULK_EXCEPTIONS(i).error_index THEN
                             INSERT
                             INTO
                               test_tab_bk
                                  col1,
                                  col2
                               VALUES
                                  insert_tbl(idx).col1,
                                  insert_tbl(idx).col2
                          END IF;
                     END LOOP;
              END LOOP;
         END;
         CLOSE cur_insert;
      commit;
    END;
    select * from test_tab;
    select * from test_tab_bk;This will work, but not sure if it can be implemented in your code.
    This solution is also not great performance wise as for backup table we are inserting row by row.
    LOG ERRORS INTO is still the best solution(both in usability and performance wise) and if possible try to use it.

  • Script Logic is not behaving as expected

    I've written the script shown below and I can't figure out why I can use "GET" to retrieve temporary Revenue records that I'm creating but not the temporary Visit records.  I need to retrieve 6 months of actual Revenue and Visits (a statistic), then multiply Budget Visits by actual revenue / actual visits.  There are some differences in the datasrc, account, entity and category dimensions among the three types of recods, but I think I've accomodated them.  I'm hoping that another set of eyes will see somthing obvious - any help would be greatly appreciated.
    Thanks,
    Tom
    //$$ HERE'S THE CONTENTS OF A FILE THAT CONTAINS CONSTANTS
    /////////// BEGIN ConstGrossRev.lgf ///////////////////////////////////////////////////////////////////////
    // CONSTANTS FOR USE IN BUDGET GROSS REVENUE AND ALLOWANCES CALCULATIONS
    // @@@@@@@ EDIT THE FOLLOWING LINES ONLY WHEN NEW BUDGET YEAR BEGINS @@@@@@@
    // Budget Year
    *FUNCTION varBUDYR=2009
    // Current Year
    *FUNCTION varCURYR=2008
    // @@@@@@@@ EDIT THE ABOVE LINES ONLY WHEN NEW BUDGET YEAR BEGINS @@@@@@@@
    // Current Year Months for Average Charge Calculation
    // FIRST 6 MONTHS
    *FUNCTION varCURMOS=varCURYR.JAN,varCURYR.FEB,varCURYR.MAR,varCURYR.APR,varCURYR.MAY,varCURYR.JUN
    /////////// END ConstGrossRev.lgf ///////////////////////////////////////////////////////////////////////
    //$$ THE CODE....
    /////////// BEGIN CreateGrossRev.lgf ///////////////////////////////////////////////////////////////////////
    // Budget Gross Revenue = Act 6 mos Gross / Act 6 mos Visits * Bud Visits
    // ie. 2009 Bud Gross Rev = 2008 Act 6 Mos Gross / 2008 Act 6 mos Visits * 2009 Bud Visits
    // Include the Constants File - This contains a user modifiable value that changes from year to year.
    *INCLUDE ConstGrossRev.LGF
    // SCOPE FOR ALL VISIT ACCOUNTS AND GROSS CHARGES, ACTUAL AND BUDGET
    *MEMBERSET(%ACCTS%,"Descendants([ACCOUNTFIN].[OPTotalVisits],99,LEAVES)")
    *MEMBERSET(%BUDMOS%,"Descendants([TIME].[varBUDYR.TOTAL],99,LEAVES)")
    *XDIM_MEMBERSET ACTIONPLAN=<ALL>
    *XDIM_MEMBERSET AFFILIATE=<ALL>
    *XDIM_MEMBERSET CHARGECODE=<ALL>
    *XDIM_MEMBERSET DATASRCFIN=<ALL>
    *XDIM_MEMBERSET ENTITY=<ALL>
    *XDIM_MEMBERSET PROJECT=<ALL>                                                
    *XDIM_MEMBERSET CATEGORY=ACTUAL,BUDGET
    *XDIM_MEMBERSET TIME=%BUDMOS%,varCURMOS
    *XDIM_MEMBERSET ACCOUNTFIN=%ACCTS%,A_41000,A_41100,A_41150,A_41170,A_41200,A_41300,A_41400,,A_41500,A_41600
    *WHEN CATEGORY
      *IS "ACTUAL"
        *WHEN TIME.YEAR
          *IS "varCURYR"
            *WHEN ACCOUNTFIN.GRREV_ACCT
              *IS <> ""
    //$$ NEXT NON-COMMENT LINE RETURNS
    //$$ ACCOUNTFIN,ACTIONPLAN,AFFILIATE,CATEGORY,PROJECT,CHARGECODE,DATASRCFIN,ENTITY,TIME,SIGNEDDATA
    //$$ A_90700,BASE,NO_AFFILIATE,#TEMP_VIS,NO_PROJECT,ALL_cHARGECODES,PEOPLESOFT,FORES,2009.INP,567.89  (AND ANOTHER 50 VALID RECORDS)
                *REC(TIME="varBUDYR.INP",ENTITY=ENTITY.BU,CATEGORY="#temp_VIS")
            *ELSE
    //$$ NEXT NON-COMMENT LINE RETURNS
    //$$ ACCOUNTFIN,ACTIONPLAN,AFFILIATE,CATEGORY,PROJECT,CHARGECODE,DATASRCFIN,ENTITY,TIME,SIGNEDDATA
    //$$ A_90700,BASE,NO_AFFILIATE,#TEMP_REV,NO_PROJECT,NO_cHARGECODE,PEOPLESOFT,FORES,2009.INP,234567.89  (AND ANOTHER 15 VALID RECORDS)
                *REC(ACCOUNTFIN=ACCOUNTFIN.VIS_ACCT,TIME="varBUDYR.INP",ENTITY=ENTITY.BU,CATEGORY="#temp_REV")
            *ENDWHEN
        *ENDWHEN
    *ENDWHEN
    *GO
    *WHEN CATEGORY
      *IS "BUDGET"
        *WHEN TIME.YEAR
          *IS "varBUDYR"
            *WHEN ACCOUNTFIN.GRREV_ACCT
              *IS <> ""
    //$$ NEXT NON-COMMENT LINE RETURNS
    //$$ ACCOUNTFIN,ACTIONPLAN,AFFILIATE,CATEGORY,PROJECT,CHARGECODE,DATASRCFIN,ENTITY,TIME,SIGNEDDATA
    //$$ A_90700,BASE,NO_AFFILIATE,BUDGET,NO_PROJECT,NO_cHARGECODE,PEOPLESOFT,FORES,2009.INP,234567.89  (AND ANOTHER 200 VALID RECORDS)
    //$$ THIS RETURNS THE CORRECT RECORDS FROM BEFORE THE "GO"
                 *REC(EXPRESSION=GET(TIME="varBUDYR.INP",CATEGORY="#temp_REV",ENTITY=ENTITY.BU,DATASRCFIN="PEOPLESOFT",CHARGECODE="NO_CHARGECODE"))
    //$$ NEXT NON-COMMENT LINE RETURNS
    //$$ ACCOUNTFIN,ACTIONPLAN,AFFILIATE,CATEGORY,PROJECT,CHARGECODE,DATASRCFIN,ENTITY,TIME,SIGNEDDATA
    //$$ A_90700,BASE,NO_AFFILIATE,BUDGET,NO_PROJECT,ALL_cHARGECODES,PEOPLESOFT,FORES,2009.INP,0  (AND ANOTHER 50 VALID RECORDS)
    //$$ THIS RETURNS RECORDS WITH A VALUE OF ZERO IN ALL CASES!
                 *REC(EXPRESSION=GET(TIME="varBUDYR.INP",CATEGORY="#temp_vis",ENTITY=ENTITY.BU,DATASRCFIN="PEOPLESOFT"))
            *ENDWHEN
        *ENDWHEN
    *ENDWHEN
    *COMMIT
    /////////// END ConstGrossRev.lgf ///////////////////////////////////////////////////////////////////////

    Hi Tom
    I don't see where you define or set value for #TEMP_REV and #TEMP_VIS
    something like
    *WHEN CATEGORY.FLAG
    *IS = Y
      *REC(CATEGORY=#TEMP_VIS)
    *ELSE
      *REC(CATEGORY=#TEMP_REV)
    *ENDWHEN
    *GO

  • Bean not behaving as expected

    OK, I have a JSP running the following script section.
    <% irCollection mgrq = new irCollection(); 
          mgrq.setMgrid("Chris Novish");
          mgrq.populateCollection();
          int pagenum;
          if (request.getParameter("p") != null) {
            String pagedatum=request.getParameter("p");
            pagenum = Integer.parseInt(pagedatum);
          } else { pagenum = 0; }
          for (int i=0;i<10;i++) {
            int rownum = pagenum * 10 + i;
            InquireRecord currec = mgrq.getCurRecords(rownum);
            out.println(currec.getID()); %>irCollection has an ArrayList property that stores a several InquireRecord objects. It gets this data from a database using the mgrid as (set in line 2 there) as the matching term.
    But I'm getting an IndexOutOfBounds exception on what appears here as line 11.
    I've done some tests, and I'm pretty sure that it's because populateCollection() isn't getting things done. I have a getSize method that gives me a size of 0.
    I made a test class in Eclipse to make sure all my methods were working:
    package com.serco.inquire;
    public class test {
         public static void main (String[] args) {
              String mgr = "Chris Novish";
              irCollection bob = new irCollection();
              bob.setMgrid(mgr);
              bob.populateCollection();
              InquireRecord fred = bob.getCurRecords(1);
              System.out.println(fred.getID());
    }That test class produces exactly what I'd expect.
    Other than the names of some of the local variables, I can't see what I'm doign different in the JSP.
    So... tell me, what noobish mistake did I make?
    for the sake of being thorough, here's the populateCollection() method:
    public void populateCollection() {
              try {
                   Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
                   String filename = "inquire.mdb";
                   String database = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=";
                   database+= filename.trim() + ";DriverID=22;READONLY=true}";
                   Connection con = DriverManager.getConnection( database ,"","");
                   Statement s = con.createStatement();
                   s.execute ("SELECT * FROM inquiries WHERE manager = '" + mgrid + "'");
                   ResultSet rs = s.getResultSet();
                   int cur;
                   if (rs != null) {
                   while (rs.next()) {
                        cur = rs.getRow();
                        cur -- ;
                        int curID = rs.getInt("ID");
                        this.newIR.setID(curID);
                        String cursub = rs.getString("submitter");
                        this.newIR.setSubmitter(cursub);
                        this.iRecords.add(cur, this.newIR);
                   this.size = iRecords.size();
                   this.pages = this.size / 10;
                   int remain = this.size % 10;
                   if (remain > 0) { this.pages++; }
                             } else { System.out.println("no records."); }
              catch (Throwable e) {
                   System.out.println(e);
         }Edited by: EJP on 21/06/2011 09:15: added {noformat}{noformat} tags. Please use them.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

    But I'm getting an IndexOutOfBounds exception on what appears here as line 11.Line 11 of what? You've posted three separate pieces of code.
                   Statement s = con.createStatement();
                   s.execute ("SELECT * FROM inquiries WHERE manager = '" + mgrid + "'");
    PreparedStatement s = con.prepareStatement("SELECT * FROM inquiries WHERE manager = ?'", Statement.NO_GENERATED_KEYS);
    s.setObject(1, mgrid);
                   ResultSet rs = s.getResultSet();
                   int cur;
                   if (rs != null) { 'rs' cannot be null. Test is pointless.
                        cur = rs.getRow();
                        cur -- ;
    cur = rs.getRow()-1;
                        this.iRecords.add(cur, this.newIR);
    this.iRecords.add(this.newIR);'newIR' mustn't be a member variable, it should be local, and refer to a newly created instance every time around the loop. At the moment you are overwriting previous elements of 'iRecords'.
                   this.pages = this.size / 10;
    this.pages = (this.size+9)/10;
                   if (remain > 0) { this.pages++; }
                             } else { System.out.println("no records."); }Wrong message. If 'remain' is zero there may be any multiple of 10 records. You can remove this entire block: adding 9 above does all you need.

Maybe you are looking for

  • PSE 7 editor will not open in XP

    I installed PSE 7 several weeks ago and it has been working fine. Now, when I attempt to open the editor nothing happens. It opens in Task Manager, multiple times if tried, but is never actually visible. I have un-installed and re-installed, deleted

  • Form Created in LiveCycle 8 compatibility with Office 2010

    A few years ago I created a form in LiveCycle Designer 8 which allowed my users to submit a pdf from by attaching it to an Outlook email. Some of the users have switched to Office 2010 and the submit button is no longer working. Any ideas for a fix?

  • HP 4250TN Drivers on Windows Server 2008 Print Server

    Hi: I'm having a heck of a time with HP 4250 printers installed on a Windows Server 2008 printer server.  First I used the PCL6 driver downloaded from HP site.  But then after client computers install printer they cannot print from Acrobat in landsca

  • Preview Build failed to download 0x80246018

    Running Windows Technical Preview for Enterprise Build 9841.  After I enabled the Preview Builds option in Update and Recovery, I attempted to download Build 9860 but received the error "Failed to download the new preview build, please try again lat

  • How to implement seek slider's working

    Hi, I am trying to make a simple audio player.I want to show duration on a JSlider.But I am not able to implement when user clicks or drags the slider to new position,how to set the new position at that point. Thanks in advance