Simple split cache semantics on System.exit?

We have observed, with the default configuration (no override xmls at all), that cache entries get lost under the following case:
1) Start an instance with java -jar coherence.jar
2) Run an application, also with no config overrides, that:
-puts some entries in a named cache (timeout long)
-System.exit()
3) Then immediately run another app that tries to pull the entries from the same named cache
Sometimes #3 works, and sometimes it finds nothing. In all cases, 2 & 3 do connect with 1.
This leads to the following questions:
1) Is the problem that the local cache is not being pushed into the backing partitioned cache before the exit?
2) How can this be rectified (other than sleeping before exiting)?
2A) Is there a "I'm done with this cache, but keep it in the backing store" semantics in one of the calls #2 could make?
2B) Is there a parameter in getting the cache that can be used
2C) Is there config that can insure that this always works
2D) Is there a way that #2 can tell when its data has made it to the cluster (backing cache)?
Thanks in advance

Hi John,
We have observed, with the default configuration (no
override xmls at all), that cache entries get lost
under the following case:
1) Start an instance with java -jar coherence.jarAs I mentioned earlier, we used to have some problems with using the console application as a cache server. Please use DefaultCacheServer instead.
2) Run an application, also with no config overrides,
that:
-puts some entries in a named cache (timeout long)
-System.exit()Which cache? Different named caches have different semantics in the stock configuration. Did you use a transactional cache?
Would you post your test code?
3) Then immediately run another app that tries to
pull the entries from the same named cache
Sometimes #3 works, and sometimes it finds nothing.
In all cases, 2 & 3 do connect with 1.
This leads to the following questions:
1) Is the problem that the local cache is not being
pushed into the backing partitioned cache before the
exit?There is no such concept as a local cache and a non-local in case of Coherence clustered caches.
If the put method call returned, then that data is supposed to be cluster durable.
The only situations I can come up with off my head for what you wrote to be normal (considering that there is cluster node 1 which supposed to live through all which you wrote) is if you
- either put your data to a cache configured to be a LocalCache (it is not clustered)
- or if you put it into a partitioned cache with backup-count configured to be zero (which is not the default setting).
- or if you put it into a TransactionMap and you did not commit it.
- programming errors somewhere
2) How can this be rectified (other than sleeping
before exiting)?I think that should work fine as it is.
2A) Is there a "I'm done with this cache, but keep it
in the backing store" semantics in one of the calls
#2 could make?There is the CacheFactory.shutdown() call indicating polite departure. However its omission should not explain this situation.
2B) Is there a parameter in getting the cache that
can be usedUsed for what? I don't understand the question...
2C) Is there config that can insure that this always
worksI think, it should work out of the box.
2D) Is there a way that #2 can tell when its data
has made it to the cluster (backing cache)?
In general, the return of the put operation means that the data is cluster-durable (if backup count is at least one for partitioned caches and there is another node or there is another node running the service in case of replicated caches).
Best regards,
Robert

Similar Messages

  • System.exit(0)   error in program.

    Any help appreciated. Let me first put my code here:
    Converts money using CurrencyConverter, there's another class I haven't posted here!! (which calculates conversion)
    import java.util.* ;
    public class CurrencyConverterTester
      public static void main(String[] args)
        Scanner in = new Scanner(System.in) ;
        System.out.println("How many euros is one dollar?") ;
        String input = in.nextLine() ;
        double rate = Double.parseDouble(input) ;
        CurrencyConverter myconverter = new CurrencyConverter(rate);
        System.out.println("Dollar value (Q to quit)") ;
        input = in.nextLine() ;
        while (true) {
          if (input == "Q"){
            System.exit(0);
            break;}
          else {
          System.out.println(input + " dollar = " +  myconverter.convert(Double.parseDouble(input)) + " euros");
          input = in.nextLine();
          continue;}   
    }The issue is that the program won't terminate when I enter Q as my input?? I'm guessing it might have something to do my conversion from string to double in the 'else' statement, but not sure. Also, if you can suggest a more simpler method for the last 'while' statement, that would be helpful as well. Thanks. (noob to java)

    paulcw wrote:
    Curse Gosling for making + syntactic sugar for string append, but not overloading any other operators.@Paul
    What did you expect from a duck ;-)
    Seriously, yep, maybe it would have been better for noobs if the syntax of Java Strings was consistent with other kinds of Object... or maybe it would have been better if == was compiler-magiced into stringA.equals(stringB)... and the left and right shift operators have promise, and of course that way lies MADNESS, as witnessed in C++ ;-)
    @OP... You are (IMHO) using the break, continue and especially System.exit() inappropriately... see my comments in your code...
        System.out.println("Dollar value (Q to quit)") ;
        input = in.nextLine() ;
        // while-true-loops are a "fairly usual" way of doing this kind of stuff,
        // but that doesn't make them "the preferred option". Typically you would
        // explore more "vanilla approaches" (which don't rely on the break and
        // continue statements)... leaping straight to the "tricky approach" means
        // you haven't (most often out of sheer laziness) thought it through... and
        // ALL good computer programs are thoroughly thought through (yep, try
        // saying that three times fast, especially after three beers).
        while (true) {
          // You don't compare Strings using ==
          if ( "Q".equalsIgnoreCase(input) ) {
            // Either of the following statements will do the job. The call to exit
            // will exit the JVM, therfore the break statement cannot be reached,
            // so it is superflous, so it's presence is just a bit confusing. Having
            // said that, "real programmers" don't use System.exe routinely, only in
            // the case of an emergency, such as handling a fatal-error, such as an
            // out-of-memory condition... an even then it's usually indicative of a
            // poor "system design", because it terminates the JVM which is running
            // this program without giving anything else in the program a chance to
            // clean-up after itself... like ask the user if they want to save there
            // work, or whatever.
            // I would use break (if anything) instead of System.exit
            // ... and if I wrote the Java tutorials, exit wouldn't be mentioned at
            // all until both "normal" flow control, and exception handling had both
            // been thoroughly covered.
            System.exit(0);
            break;
          } else {
            // I would break this line up, probably into three lines, simply becuase
            // it's syntatically "a long line".
            // Also the name "myconverter" doesn't tell what the class is/does.
            // IMHO, currencyConverter would be a better (more meaningful) name.
            // HERE'S HOW I WOULD WRITE IT
            // double dollars = Double.parseDouble(input);
            // double euros = currencyConverter.convert(dollars);
            // System.out.println(input + " dollar = " + euros + " euros");
            System.out.println(input + " dollar = " +  myconverter.convert(Double.parseDouble(input)) + " euros");
            input = in.nextLine();
            // This continue statement is superflous. continue says "go back to the
            // top of loop, reevaluate the loop-condition (true in this case) and
            // (if the condition is still true) "Play it again Sam".
            // ... which is exactly what will happen without this continue statement
            // and hence (IMHO) your code is easier to follow without it, simply
            // because another programmer may waste there time trying to figure out
            // WHY that continue statement is present.
            continue;
        }*ALSO:* The format of that code totally sucks. Braces all over the place; improper indentation. No wonder you're struggling to read your own code. Please read and abide the [The Java Code Conventions|http://java.sun.com/docs/codeconv/] (at least until you have the requisite experience to formulate credible and compelling arguments as to why your "style" is superior to the standard, and that's no small ask). Yes this is *important*... trust me on this (for now)... especially if you are going to ask for help on the forums... You're effectively wasting our time asking us to decipher your code because you are too lasy to format it correctly... and I for one find that "self entitled" attitude ugly, and offensive... Help us help you... you know?
    And BTW.... Here's how I would actually do it.... no funky while-true, break, or continue... just a plain-ole'-while-woop....
    package forums;
    import java.util.Scanner;
    public class KRC
      private static final Scanner SCANNER = new Scanner(System.in);
      public static void main(String[] args) {
        try {
          String input = null;
          while ( !"Q".equalsIgnoreCase(input=enterDollarAmount()) ) {
            System.out.println(input + " dollars is " +  Double.parseDouble(input) + " euros.");
            System.out.println();
        } catch (Exception e) {
          e.printStackTrace();
      private static String enterDollarAmount() {
        System.out.print("Please enter an amount in dollars : ");
        return SCANNER.nextLine();
    }Edited by: corlettk on 25/10/2009 10:21 ~~ Distant Monarching Forum Markup!

  • Split cache config file support in 12.1.2?

    With 3.7.1 you could use the coherence-common library from incubator 11 to split cache config files.
    This was done with the introduce-cache-config XML element:
    <?xml version="1.0"?>
    <cache-config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://xmlns.oracle.com/coherence/coherence-cache-config"
    xsi:schemaLocation="http://xmlns.oracle.com/coherence/coherence-cache-config coherence-cache-config.xsd"
    xmlns:element="class://com.oracle.coherence.environment.extensible.namespaces.XmlElementProcessingNamespaceContentHandler"
    element:introduce-cache-config="cache-config-1.xml, cache-config-2.xml, cache-config-3.xml">
    </cache-config>
    But this will not be available in incubator 12, the classes used for that will not be ported from incubator 11 (Coherence 3.7.x) to incubator 12 (Coherence 12.x):
    http://coherence.oracle.com/download/attachments/14188570/Incubator+Update.pdf?version=2&modificationDate=1353937318977
    How to achieve this with 12.1.2?

    Hi,
    It is still possible to do this as I did it with the 12.1.2 beta and a beta of Incubator 12 so unless either of those changed at the last minute you should be able to still import cache configuration files.
    The top of your XML needs to look something like this...
    <?xml version="1.0"?>
    <cache-config xmlns="http://xmlns.oracle.com/coherence/coherence-cache-config"
                  xmlns:element="class://com.oracle.coherence.common.namespace.preprocessing.XmlPreprocessingNamespaceHandler"
                  element:introduce-cache-config="config/cluster.xml">
    where this file is importing the "config/cluster.xml" file.
    If you use custom name spaces in you configuration files then there is a bit more work to do as the XmlPreprocessingNamespaceHandler only knows how to merge the standard Coherence XML so you need to add extra code to you own namespace handlers. Specifically you need to implement...
    public void mergeConfiguration(ProcessingContext processingContext, String sFromURI, XmlElement element, XmlElement xmlIntoCacheConfig, QualifiedName originatedFrom)
    In the implementation you need to merge your custom XML (the element parameter) across to the main XML (the xmlIntoCacheConfig parameter). A very simple implementation of this would be...
    @Override
    public void mergeConfiguration(ProcessingContext processingContext, String sFromURI, XmlElement element, XmlElement xmlIntoCacheConfig, QualifiedName originatedFrom) {
        // clone the element to merge
        XmlElement xmlMergeElement = (XmlElement) element.clone();
        // annotate the origin of the merging element
        xmlMergeElement.addAttribute(originatedFrom.getName()).setString(sFromURI);
        // Add the cloned element to the XML configuration
        xmlIntoCacheConfig.getElementList().add(xmlMergeElement);
    JK

  • JVM 1.5 hang at system.exit(): how to debug ?

    Our Java application seems to sometimes hang indefinitely at System.exit().
    So far, we have observed that:
    - the hang does not happen when running JDK 1.4, but only with JDK 1.5 (we are trying to migrate to JDK 1.5.0_06)
    - it seems that if we comment out code that calls PrinterJob.print(), the hang does not happen
    - the hang can be observed on all our machines (different models), except one that is misteriously not impacted. OS is WinXP SP2.
    - when our software has sent a printer job to the printer and is running JDK 1.5, the problem can be reproduced after at most 4 or 5 tries, usually 1 or 2 runs being sufficient.
    - we have not been able to narrow the problem to a simple testcase (only reproduced using automated testcases on our application, which is 200.000+ LOC....)
    - when the JVM is stuck in System.exit, the process can be killed using the task explorer with the usual "program does not respond" and subsequent "send problem report" wizard after having killed it. (not to sure on exact wording in english...).
    We suspect a hard-to-hit regression or behavior change in JDK1.5 (there's no reason a java application could hang at System.exit(), right ?), but the above information is certainly far from being sufficient to open a bug report.
    So, any help to help us further identify the problem would be appreciated.
    More precisely, is there any way to try to understand the problem using a crash dump, or something like this ?
    Thanks

    I doubt that it hangs at System.exit(). Use jConsole (comes with your JDK) to connect to your application and inspect all running Threads which block at what exception stack trace.

  • Exit from a Frame without resorting to System.exit()

    This is driving me nuts.
    I've got a really simple problem, actually... I've got a Frame and I'm trying to get rid of it so my application will exit.
    Though using System.exit() seems to be the most common way to get an application to exit, I'd prefer to avoid going that route. My program uses multiple threads, and I want to give them all a chance to exit gracefully before the application exits, as opposed to terminating them all quite suddenly. All the threads monitor a boolean value, "exiting", and terminate, after some cleanup, when the variable is set. Using join() on all the threads before using System.exit() would work, except any number of threads may be created by the program, and not all of them will be accessible by the function doing the exiting!
    If I simply omit the call to System.exit(), and remove the Frame with dispose(), the threads all shut down properly, and the program appears to have exited, except the command prompt doesn't reappear until I hit Ctrl-C.
    So I looked up the docs for the dispose() method. It was slightly different than I remembered... Obviously, that method is not the way to shut down a Frame. What is?

    So I looked up the docs for the dispose() method. It
    was slightly different than I remembered...
    Obviously, that method is not the way to shut down a
    Frame. What is?The problem is that once you use some GUI, a pool of AWT threads is created and they are not shut down, not even if there is no more GUI visible.
    Look at these other threads for some explanation on this behaviour an workarounds:
    http://forum.java.sun.com/thread.jspa?forumID=5&threadID=10901
    http://forum.java.sun.com/thread.jspa?forumID=57&threadID=122569

  • System.exit(1)

    I use NetBean6.5 , Creme, window mobile 6, to create simple program for learning. I add a button with the System.exit to close out the program. The program closes successfuly but it gives me this error on netBean output:
    java.lang.NullPointerException
    at org.netbeans.modules.j2me.cdc.project.nsicom.NSIcomExecDeployTask.execute(NSIcomExecDeployTask.java:267)
    at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
    at sun.reflect.GeneratedMethodAccessor80.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
    at org.apache.tools.ant.Task.perform(Task.java:348)
    at org.apache.tools.ant.Target.execute(Target.java:357)
    at org.apache.tools.ant.Target.performTasks(Target.java:385)
    at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1337)
    at org.apache.tools.ant.Project.executeTarget(Project.java:1306)
    at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
    at org.apache.tools.ant.Project.executeTargets(Project.java:1189)
    at org.apache.tools.ant.module.bridge.impl.BridgeImpl.run(BridgeImpl.java:273)
    at org.apache.tools.ant.module.run.TargetExecutor.run(TargetExecutor.java:499)
    at org.netbeans.core.execution.RunClassThread.run(RunClassThread.java:151)
    BUILD FAILED (total time: 15 seconds)
    Does anyone know why?

    nevermind just found the solution. Don't use System.exit(1), but use System.exit(0);

  • How to intercept "System.exit"?

    I am writing a large GUI application that optionally spawns other GUI threads. These spawned threads are special-purpose text editors. It is important that the editor knows when it is about to be closed, so that it can prompt the user to save a modified file.
    The editors are based upon javax.swing.JFrame, and I have overridden the "windowClosing" method of a WindowAdapter to check file status and prompt when necessary. This method performs as desired when I close the editor window manually. However, when I close the main application (which calls System.exit(0) ), the editor frames also close without any invocation of my windowClosing method.
    Is there any way the dependent editor JFrame can be alerted that the virtual machine is about to be ended? I could probably keep a list in my main application of all the dependent processes that need to be cleanly ended, but it would be much simpler (and so much more object-oriented) if the dependent thread could take care of itself!

    MarkHausman wrote:
    As you suggested, I posted this question on the Swing forum.
    For those who are interested: the Swing solution I was offered was to make use of the static function Frame.getFrames(). This allows access to all frames launched by an application. By putting this call in my main shutdown method, I can identify all spawned editor frames and call each one's shutdown method.
    This is not as satisfying as my original desire, to have the spawned frame recognize when the VM is about to close, but it is easy enough to implement that I am going with it.And why wouldn't addShutdownHook() work?

  • Intercepting System.exit() and System.out.println() calls

    hi there,
    I have often problems when working with code that uses System.exit() and System.out.println() extensively, because it becomes difficult to debug.
    Basically I do have wrappers for System.exit() (my own static exit function) and for System.out.println() (log4j).
    Still not all programmers are using these methods; Probably the only way to enforce this is some kind of code warrior, but I was hoping to be able to intercept the two System.XXX calls (and throw an appropriate Exception). is this possible ??

    Why not simply make your own security manager andhandle checkExit() and checkWrite?
    Does anyone have a simple example of this? Please?System.exit() can be intercepted using a security manager, but not System.out.xxx.
    Here is a short example:
    //set your security manager
    static{
         SecurityManager s = new OwnSecurityManager();
         System.setSecurityManager(s);
    //redirect the out stream
    try{
         PrintStream ps = new PrintStream(new FileOutputStream("output.txt"));
         System.setOut(ps);
    }catch(IOException ioe){
         ioe.printStackTrace();
    //some tests
    System.out.println("Test");
    System.exit(2);
    //your security manager
    class OwnSecurityManager extends SecurityManager{
         public void checkExit(int code){
           if(code > 0){
             super.checkExit(code);
             throw new SecurityException("Not allowed here->" + code);
         public void checkRead(FileDescriptor fd){
         public void checkRead(String file){
         public void checkRead(String file, Object context){
         public void checkPermission(Permission perm){
           if(perm.getName().equals("exitVM")){
             System.out.println("exitVM");
    }

  • Can I intercept "System.exit" in a spawned GUI thread?

    I am writing a large GUI application that optionally spawns other GUI threads. These spawned threads are special-purpose text editors. It is important that the editor knows when it is about to be closed, so that it can prompt the user to save a modified file.
    The editors are based upon javax.swing.JFrame, and I have overridden the "windowClosing" method of a WindowAdapter to check file status and prompt when necessary. This method performs as desired when I close the editor window manually. However, when I close the main application (which calls System.exit(0) ), the editor frames also close without any invocation of my windowClosing method.
    Is there any way the dependent editor JFrame can be alerted that the virtual machine is about to be ended? I could probably keep a list in my main application of all the dependent processes that need to be cleanly ended, but it would be much simpler (and so much more object-oriented) if the dependent thread could take care of itself!

    I was not aware of the Frame.getFrames() method; this is apparently good enough to find all the dependent windows I have created. Thanks for pointing this out.
    As to the spawned threads, perhaps you could comment on my method. I was actually hoping to open the editors as independent applications that would persist after the main GUI was closed. To do this, I gave my editor class an associated static Runnable, like so:
       public static class Starter extends Thread {
             String[] arguments = new String[0];
             public void run() {
                MyEditor re = new MyEditor();
                if( arguments.length > 0) re.setFileName(arguments[0]);
                re.setVisible(true);
             public void copyArguments( String[] args) {
                arguments = Arrays.copyOf(args, args.length);
       }which I invoked from my main GUI in the following code:
       Starter starter = new Starter();
       String[] startArgs = {"myfilename.txt", "more parameters"};
       starter.copyArguments(startArgs);
       starter.setDaemon(false);
       starter.start();This does indeed start the editor, but it is in the same virtual machine, since the editor stops when the GUI stops. Is this method setting me up for trouble? Is there a way to do what I originally wanted, starting the editor in a new virtual machine?

  • Why in COM, set smth true, stays true even after System.exit?

    I am using "Jacob" to do COM calls. When I alter the "ShowAll" property of Word.Application and I set it to true, it will then forever be true even if I exit the application AND quit the word application. If I set it to false, the same thing happens, it will always be so. The code to call/set this is:
    (NOTE: This uses classes I made to wrap the Dispatch calls)
    Word wordApp = new Word();
    Documents docs = wordApp.getDocuments();
    Document doc = docs.open("D:\\JavaProjects\\Test.doc");
    //GET VIEW
    View wordView = wordApp.getActiveWindow().getView();
    //PRINT THE VIEW PROPERTIES
    System.out.println("Show All: " + wordApp.getActiveWindow().getView().isShowAll());
    System.out.println("Show Paragraphs: " + wordApp.getActiveWindow().getView().isShowParagraphs());
    //SET THE VIEW PROPERTIES
    wordView.setShowAll(false);
    wordView.setShowParagraphs(true);
    //PRINT THEM AGAIN
    System.out.println("Show All: " + wordApp.getActiveWindow().getView().isShowAll());
    System.out.println("Show Paragraphs: " + wordApp.getActiveWindow().getView().isShowParagraphs());
    doc.close(Document.DO_NOT_SAVE);
    wordApp.quit(new Variant[] {});
    System.exit(0);The actual Dispatch calls are:
    //NO IDEA WHY THIS IS, BUT SHOWALL = TRUE IS -1, AND FALSE IS 0
    private final static int SHOW_ALL_TRUE = -1;
    private final static int SHOW_ALL_FALSE = 0;
    /** SETSHOWPARAGRAPHS **
    * Sets the property (boolean) ShowParagraphs.
    public void setShowParagraphs(boolean showParagraphs)
         Dispatch.put(this, "ShowParagraphs", new Boolean(showParagraphs));
    /** ISSHOWPARAGRAPHS **
    * Returns Boolean of whether or not this is set to show paragraphs.
    public boolean isShowParagraphs()
         return getBooleanValue(Dispatch.get(this, "ShowParagraphs"));
    private boolean getBooleanValue(Variant variantBoolean)
         //MAKE IT AN INTEGER AND GET ITS int VALUE
         int intVariant = new Integer(variantBoolean.toString()).intValue();
         //RETURN IF IS SHOW ALL
         return (intVariant == View.SHOW_ALL_TRUE);
    }I'm wondering if the problem is that I get back either -1 or 0 and if maybe that means something else?

    1: Properties persistence is not a DEFECT but a FEATURE . It was implemented in MS Word so users could change MS word WITHOUT HAVING TO DO IT EACH TIME THEY START IT UP.
    2: Don't you intialise all your variables in your code after you instanciated them ? I am sure you do so and therefore the persitence feature you described should not be annoying you at all. It is not necessary to intialise variables in the BASIC langage but that does not mean you should not do it.
    3: (-1) was chosen arbitrary by Microsoft as the TRUE value for Boolean datatype and 0 the value for FALSE when they designed Visual Basic. This is not a problem if you write code properly
    I recommend you test bool variable in any langages using the following test:
    (myBool <> 0)
    HAVE A THINK ABOUT IT
    Finally,
    you need to understand what you are working with before you complain about it.
    Argument for Argument sake is not good and if you think MS word is a bad program just don't use it. go and write your own word processor in JAVA.
    GOOD LUCK
    I WISH TO APOLOGISE FOR ANY POSSIBLE SPELLING OR GRAMMATICAL MISTAKES I COULD HAVE MADE IN THIS REPLY. ENGLISH NOT BEING MY FIRST LANGUAGE.

  • Denying system.exit in java code

    My objective is to nullifying the system.exit programmed. By goggling i learn t that this can be done by adding permission in policy file. But as far my google search i dont understand how to deny a permission. Most of them says about granting a permission. Can anyone clarify how to deny a permission.
    Steps i tried.
    Sample program: which does nothing other than calling system.exit(0) as the first line in main method.
    added the following line to java.policy file in my JAVA_HOME/jre/lib/security
    grant {
              permission java.lang.RuntimePermission "exitVM";
    Also tried adding only
    permission java.lang.RuntimePermission "exitVM";
    to the already available grant block.
    Also commented out
    //grant codeBase "file:${java.home}/lib/ext/*" {
    //     permission java.security.AllPermission;
    After that i understood that the default java policy file is java.home\lib\security\java.policy. So made all the change above mentioned there too.
    But i could not achieve it. Can any one help me on this.
    Win 2000/ Java1.4.2_12/no command line arguments while running the program.

    Welcome to the Forums.
    Please go through the FAQ of the Forum.
    You has posted your query in the wrong Forum, this one is dedicated to Oracle Forms.
    Please try {forum:id=1050}.
    Regards,

  • The ABAP call stack was: SYSTEM-EXIT of program BBPGLOBAL

    Hi
    We are using SRM 5.0. We are facing a strange problem. We are able to see the initial screen of SRM EBP in the browser. But once the user name and password are provided the system goes for a dump with the following error:
    The following error text was processed in the system SS0 : System error
    The error occurred on the application server <Server Name> and in the work process 0 .
    The termination type was: ABORT_MESSAGE_STATE
    The ABAP call stack was: SYSTEM-EXIT of program BBPGLOBAL
    <b>SM21 Log:</b>
    Short Text
         Transaction Canceled &9&9&5 ( &a &b &c &d &e &f &g &h &i )
         The transaction has been terminated.  This may be caused by a
         termination message from the application (MESSAGE Axxx) or by an error
         detected by the SAP System due to which it makes no sense to proceed
         with the transaction.  The actual reason for the termination is
         indicated by the T100 message and the parameters.
    Transaction Canceled ITS_P 001 ( )
    Message Id: ITS_P
    Message No: 001
    I just checked these threads but did not help much,
    RABAX_STATE  error after loggin into BBPSTART service in SRM 4.
    ITS_TEMPLATE_NOT_FOUND error
    Besides I tried this note: 790727 as well, still I get the same error.
    Any help would be highly appreciated.
    Thanks in advance
    Kathirvel Balakrishnan

    Hi
    <u>Please do the following steps.</u>
    <b>When you are using the Internal ITS,you need not run the report W3_PUBLISH_SERVICES.(only SIAC_PUBLISH_ALL_INT )
    ALso pls check the foll:
    -->activate the services through SICF tcode.
    > Go to SICF transaction and activate the whole tree under the node Default host>sap>bc>gui>sap>its.
    >Also maintain the settings in SE80>utilities>settings>internet transaction server-->test service/Publish. (BBPSTART , BBPGLOBAL etc)
    Table TWPURLSVR should have entries for the / SRM server line as well as gui and web server.
    Could you please review again the following steps ?
    Did you check that ICM was working correctly (Transaction -  SMICM) ?
    1-Activate the necessary ICF services
    With transaction SICF and locate the
    services by path
    /sap/public/bc/its/mimes
    /sap/bc/gui/sap/its/webgui
    2- Publish the IAC Services
    With Transaction SE80 locate from
    the menu Utilities -> Settings ->
    Internet Transaction Server (Tab) ->
    Publish (Tab) and set “On Selected
    Site” = INTERNAL.
    3- Locate the Internet Services SYSTEM and WEBGUI.
    Publish these services with the Context
    Menu -> Publish -> Complete Service
    4- Browse to http://<server>:<icmport>/sap/bc/gui/
    sap/its/webgui/! and login to the
    webgui.</b>
    Hope this will help.
    Please reward suitable points.
    Regards
    - Atul

  • How  to track System.exit(0) call

    hi there,
    how can i trace the System.exit(0) function call in my program.
    i.e as we know which class is being loaded into the jvm by overriding
    the classloader, can we similarly know when is our jvm going to be
    destroyed. here iam invoking jvm from my windows program using invocation api.
    any help is mostly appreciated.
    thanks in advance
    bye
    ramana

    Not sure I know what you are asking.
    You could create a security manager which prevents exit() from being called.
    You could replace System using the bootstrap command line option. Although if you do that you can not distribute it due to the license agreement. Once replaced you can do anything you want in the application.
    You could use Runtime.addShutdownHook() if you just want to do something when the application exits.

  • System.exit doesnt work on Sun OS 5.7 ??

    Hi, I have encountered a kind of wierd problem. I have a small application that uses System.exit when the user wants to shut down the application.
    That works fine in Windows but in Sun OS 5.7 the application just freeze.
    Im using java version:
    java version "1.4.1"
    Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.1-b21)
    Java HotSpot(TM) Client VM (build 1.4.1-b21, mixed mode)
    Would be greatful if someone could help me.
    This code is an small example of my application.
    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;
    public class ExitTest extends JFrame implements ActionListener {
    JButton jButton1 = new JButton();
    public ExitTest() {
    try {
    jbInit();
    catch(Exception e) {
    e.printStackTrace();
    public static void main(String[] args) {
    new ExitTest().setVisible(true);
    private void jbInit() throws Exception {
    jButton1.setText("Exit");
    jButton1.addActionListener(this);
    addWindowListener(this);
    this.getContentPane().add(jButton1, BorderLayout.SOUTH);
    public void actionPerformed(ActionEvent e) {
    this.setVisible(false);
    System.out.println("Exiting");
    try {
    System.exit(0);
    } catch(SecurityException ex) {
    ex.printStackTrace();
    ---------------------------------------------------------------------------------------------------------

    Hmm, sorry about that, my misstake, that line is still there from an erlier attempt to use windowlisteners instead ... that line should not be there ...

  • System.exit(0) closing both JFrames

    hey, ive got a problem with a JFrame
    Ive got 1 JFrame that currently holds a JMenuBar, 2 JMenus and in the 1st JMenu there are 4 JMenuItems.
    One of the JMenuItems uses an ActionListener to lauch another JFrame, but when the 2nd JFrame is finished (and System.exit(0) launches), the first JFrame closes as well. What is going on??
    code follows:
    THE MAIN JFRAME
    import java.awt.*;
    import java.awt.event.*;
    import java.io.*;
    import java.util.*;
    import javax.swing.*;
    import javax.swing.event.*;
    public class realframe extends JFrame
    protected JMenuItem[] m_fontMenus;
    protected JCheckBoxMenuItem m_showPatList;
    protected JCheckBoxMenuItem m_showPatData;
    protected JCheckBoxMenuItem m_showHRGraph;
    protected JCheckBoxMenuItem m_showBPGraph;
    protected JCheckBoxMenuItem m_showTempGraph;
    public realframe(){
    super("PMS Menu GUI");
    setSize(450, 350);
    JMenuBar menuBar = createMenuBar();
    setJMenuBar(menuBar);
    WindowListener wndCloser = new WindowAdapter() {
    public void windowClosing(WindowEvent e) {
    System.exit(0);
    addWindowListener(wndCloser);
    setVisible(true);
    //start Menus
    protected JMenuBar createMenuBar()
    final JMenuBar menuBar = new JMenuBar();
    //creates File
    JMenu mFile = new JMenu("File");
    //Menu 1 item 1 : : : Add Patient
    JMenuItem item = new JMenuItem("Add Patient");
    ActionListener lst = new ActionListener() //ActionListener for Add Patient
    public void actionPerformed(ActionEvent e)
    new realgui( new JFrame() );
    item.addActionListener(lst);
    mFile.add(item);
    //Menu 1 item 2 : : : Delete Patient
    item = new JMenuItem("Delete Patient");
    lst = new ActionListener()
    public void actionPerformed(ActionEvent e) { }
    item.addActionListener(lst);
    mFile.add(item);
    //Menu 1 item 3 : : : Search
    item = new JMenuItem("Search");
    lst = new ActionListener()
    public void actionPerformed(ActionEvent e) { }
    item.addActionListener(lst);
    mFile.add(item);
    //Divider
    mFile.addSeparator();
    //Menu 1 item 4 : : : Exit
    item = new JMenuItem("Exit");
    item.setMnemonic('x');
    lst = new ActionListener() {
    public void actionPerformed(ActionEvent e) {
    System.exit(0);
    item.addActionListener(lst);
    mFile.add(item);
    menuBar.add(mFile);
    //end menu item 1
    ActionListener viewListener = new ActionListener() {
    public void actionPerformed(ActionEvent e) {
    updateMonitor();
    JMenu mView = new JMenu("View");
    mView.setMnemonic('V');
    //Menu 2 item 1 : : : Patient List Toggle
    m_showPatList = new JCheckBoxMenuItem("Patient List");
    m_showPatList.setMnemonic('L');
    m_showPatList.setSelected(true);
    m_showPatList.addActionListener(viewListener);
    mView.add(m_showPatList);
    //Menu 2 item 2 : : : Data box Toggle
    m_showPatData = new JCheckBoxMenuItem("Patient Data");
    m_showPatData.setMnemonic('D');
    m_showPatData.setSelected(true);
    m_showPatData.addActionListener(viewListener);
    mView.add(m_showPatData);
    //Divider
    mView.addSeparator();
    //Menu 2 item 3 : : : HR Graph toggle
    m_showHRGraph = new JCheckBoxMenuItem("Show HR Graph");
    m_showHRGraph.setMnemonic('H');
    m_showHRGraph.setSelected(true);
    m_showHRGraph.addActionListener(viewListener);
    mView.add(m_showHRGraph);
    //menu 2 item 4 : : : BP Graph Toggle
    m_showBPGraph = new JCheckBoxMenuItem("Show BP Graph");
    m_showBPGraph.setMnemonic('B');
    m_showBPGraph.setSelected(true);
    m_showBPGraph.addActionListener(viewListener);
    mView.add(m_showBPGraph);
    //menu 2 item 5 : : : Temp Graph Toggle
    m_showTempGraph = new JCheckBoxMenuItem("Show Temp Graph");
    m_showTempGraph.setMnemonic('T');
    m_showTempGraph.setSelected(true);
    m_showTempGraph.addActionListener(viewListener);
    mView.add(m_showTempGraph);
    menuBar.add(mView); //adds the menu
    return menuBar;
    protected void updateMonitor() { }
    public static void main(String argv[]) { new realframe(); }
    THE SECONDARY JFRAME
    import javax.swing.*;
    import javax.swing.border.*;
    import java.awt.*;
    import java.awt.event.*;
    public class realgui extends JDialog implements ActionListener
    JTextField surname;
    JTextField given;
    JTextField age;
    JTextField doctor;
    JTextField phone;
    Patient patient = new Patient();
    JRadioButton radiomale;
    JRadioButton radiofemale;
    public realgui( JFrame frame )
    super( frame, true );
    System.out.println("in 1");
    setTitle( "Add A New Patient" );
    setSize( 400, 250 );
    JPanel panel = new JPanel( new BorderLayout() );
    panel.setLayout( new GridBagLayout() );
    panel.setBorder( new EmptyBorder( new Insets( 5, 5, 5, 5 ) ) );
    getContentPane().add( BorderLayout.CENTER, panel );
    GridBagConstraints c = new GridBagConstraints();
    Dimension shortField = new Dimension( 40, 20 );
    Dimension mediumField = new Dimension( 100, 20 );
    Dimension longField = new Dimension( 180, 20 );
    EmptyBorder border = new EmptyBorder( new Insets( 0, 0, 0, 10 ) );
    EmptyBorder border1 = new EmptyBorder( new Insets( 0, 20, 0, 10 ) );
    c.insets = new Insets( 2, 2, 2, 2 );
    c.anchor = GridBagConstraints.WEST;
    JLabel lbl1 = new JLabel( "Surname:" );
    lbl1.setBorder( border );
    c.gridx = 0;
    c.gridy = 0;
    c.gridwidth = 1;
    panel.add( lbl1, c );
    surname = new JTextField();
    surname.setPreferredSize( longField );
    c.gridx = 1;
    c.gridwidth = 3;
    panel.add(surname, c );
    JLabel lbl7 = new JLabel( "Given Name:" );
    lbl7.setBorder( border );
    c.gridx = 0;
    c.gridy = 1;
    c.gridwidth = 1;
    panel.add( lbl7, c );
    given = new JTextField();
    given.setPreferredSize( longField );
    c.gridx = 1;
    c.gridwidth = 3;
    panel.add(given, c );
    JLabel lbl2 = new JLabel( "Age:" );
    lbl2.setBorder( border );
    c.gridx = 0;
    c.gridy = 2;
    c.gridwidth = 1;
    panel.add( lbl2, c );
    age = new JTextField();
    age.setPreferredSize( shortField );
    c.gridx = 1;
    c.gridwidth = 3;
    panel.add( age, c );
    JLabel lbl3 = new JLabel( "Gender:" );
    lbl3.setBorder( border );
    c.gridx = 0;
    c.gridy = 3;
    panel.add( lbl3, c );
    JPanel radioPanel = new JPanel();
    radioPanel.setLayout( new FlowLayout( FlowLayout.LEFT, 5, 0 ) );
    ButtonGroup group = new ButtonGroup();
    radiomale = new JRadioButton( "Male" );
    radiomale.setSelected( true );
    group.add(radiomale);
    radiofemale = new JRadioButton( "Female" );
    group.add(radiofemale);
    radioPanel.add(radiomale);
    radioPanel.add(radiofemale);
    c.gridx = 1;
    c.gridwidth = 3;
    panel.add( radioPanel, c);
    JLabel lbl4 = new JLabel( "Doctor:" );
    lbl4.setBorder( border );
    c.gridx = 0;
    c.gridy = 4;
    panel.add( lbl4, c );
    doctor = new JTextField();
    doctor.setPreferredSize( longField );
    c.gridx = 1;
    c.gridwidth = 3;
    panel.add(doctor, c );
    JLabel lbl5 = new JLabel( "Phone Number:" );
    lbl5.setBorder( border );
    c.gridx = 0;
    c.gridy = 5;
    c.gridwidth = 1;
    panel.add( lbl5, c );
    phone = new JTextField();
    phone.setPreferredSize( mediumField );
    c.gridx = 1;
    c.gridwidth = 3;
    panel.add(phone, c );
    JButton submitBtn = new JButton( "Submit" );
    c.gridx = 4;
    c.gridy = 0;
    c.gridwidth = 1;
    c.fill = GridBagConstraints.HORIZONTAL;
    panel.add( submitBtn, c );
    submitBtn.addActionListener(this);
    JButton cancelBtn = new JButton( "Cancel" );
    c.gridy = 1;
    c.anchor = GridBagConstraints.NORTH; // anchor north
    panel.add( cancelBtn, c );
    cancelBtn.addActionListener(this);
    WindowListener wndCloser = new WindowAdapter()
    public void windowClosing(WindowEvent e)
    System.exit(0);
    addWindowListener( wndCloser );
    setVisible( true );
    public static void main( String[] args ) {
    new realgui( new JFrame() );
    public void actionPerformed(ActionEvent evt)
    if (evt.getActionCommand ().equals ("Submit"))
    Person person = new Person();
    String surnam = surname.getText();
    String give = given.getText();
    String ag = age.getText();
    String docto = doctor.getText();
    String phon = phone.getText();
    char gende;
    if(radiomale.isSelected()==true)
    gende = 'M';
    else
    gende = 'F';
    System.out.println("in 2 " + surnam);
    person.setSurname(surnam);
    person.setGiven(give);
    // person.setAge(ag);
    person.setDoctor(docto);
    person.setPhone(phon);
    person.setGender(gende);
    System.out.println(surnam + " " + give + " " + ag + " " + gende + " " + docto + " " + phon);
    person.setHistory();
    patient.add(person);
    System.exit(0);

    No, dispose() is inherited. Just replace System.exit(0); with:
    setVisible(false);
    dispose();I think that'll work in your code.

Maybe you are looking for

  • Iphoto will not burn to cd

    When burning cds with iphoto 2.0.1 , I get an unknow error(-2147352480) when the burn is finishing causing a failure. Anyone know how to correct this malfuntion. thanks degoodwin

  • Skype to go - India to US

    I am in India and have an unlimited subscription for US calls since around a year.. I usually call my girl friend in US to her cell phone from my skype account (from my pc). Is there a way I can call to from my cell phone itself without signing in to

  • The Song Could Not be used because the original file Cannot be found!!!!!

    Hello, I have my music on a separate hard drive and all of a sudden some songs randomly cannot be found. There does not seem to be a pattern to this. Everything is set up correctly but yet I have to manually go and find songs. I've tried everything I

  • What is OBN

    Hi...I am new to SAP portal. Need help. Can some one explain me the concept of OBN in SAP EP in simple terms.

  • Alv output capturing changed Output values

    hi all, I have an alv grid output. In this output i have one column which is input enabled . I will be changing the values and I have a pushbutton in the application tool bar. When I press the pushbutton, by selecting the row with the changed value,