IP21 and 12.0

We have an issue similar to the one that Harold had in this [thread|Re: xMII - IP21 interface;
Our ODBC/System DSN connects to IP21 with the 32bit ODBC. As well the Data Servers connection status says "Running" within xMII. But when we create a Tag query within the workbench, it says (with the admin role) "Can not create a connection to the Database."  Under the developer role it says "You do not have permission to access the <IP21 Server Name>."
Right now I don't have access to the error logs so I can't tell you what the error message is.
I know in 11.5 we had to go into the Services and change the "Log on as" for the xMII service to get access to our IP21 server.  Do we need to do this in 12 as well? If so, what do we need to change?
Could the 32bit ODBC be the cause of the issue?

Brian,
Hope all is well in TX....
From the Menu:
Security Services -> Data Access
This will allow you to assign role based access to various data server connections.
Hope this helps.
Sam

Similar Messages

  • Need Information about IP21 and IHistorian

    I'm need to connect IP21 plc and IHistorian db.But I don't have that much knowledg about these two things.Can I have document or link which provides infomation about IP21 and IHistorian or else any depth explanation about these two. Please provide me the necessary information.
    Thanq,
    Rakesh

    Hi,
    Pls chk this link;
    xMII - IP21 interface
    xMII - IP21 interface
    Regards
    CSM Reddy

  • Connectivity of IP21 to xMII

    Dear all,
    I want to establish a connectivity of the IP21 server with the xMII server. For this I have used a IP21 connector. I was getting an error related to Easysoft services. To resolve this I downloaded the easysoft JDBC-ODBC connector from the easysoft site. (I can see the Easysoft services running in the windows 'services')
    Still I am not able to establish the connection between the IP21 and xMII serer.
    Looking at the log file I get the below mentioned messages.
    2007-12-19 02:22:37,604 [ServletExec: request: time=1198059757432, uri=/Lighthammer/Admin/CMSAdmin] FATAL  Connector - Unable to create connection pool for xMII_IP21: java.lang.ClassNotFoundException: easysoft.sql.jobDriver, App folder=C:\ServletExec AS\se-xMII\webapps\default\Lighthammer\
    2007-12-19 02:22:37,604 [ServletExec: request: time=1198059757432, uri=/Lighthammer/Admin/CMSAdmin] SYSTEM Connector - Create Server [name=xMII_IP21,className=com.lighthammer.Illuminator.connectors.AspenTech.IP21,description=Default AspenTech IP21 Server,enabled=true,connected=false,holder=null]
    Can anybody help me to establish a connection between IP21 and xMII server. Are there any s/w required to be installed on the IP21 serverside? Any setting need to be done other than xMII configuration ?
    can anybody help on this issue....?

    Hi Ketan,
          This thread may also help.
    xMII - IP21 interface
    Ranga has given the datsource parameters that he used. I tried using the same and it worked just fine.
    But as you would have seen the replies in the prvious thread, i guess the best way to connect to IP21 is to use OLEDB UDS Connector.
    Regards,
    Ram

  • Siemens Open PSC 7 time stamp anomoly

    Forum,
    I have a tag that resides on both, Aspen IP21 and a Siemens PSC 7, 7.1 HDA. Both of these historians reside in the Mountain TZ and both servers are set to Mountain TZ and observing DST. The MII server is in the Eastern TZ observing DST.
    MII version is 11.5.6 b73
    The MII OPC HDA connector is using UDS version 2.5.0.4 Beta
         Framework ver 2.5.0.4
         OPC Data Source ver 2.5.4.0 Beta
    The MII IP21 connector is using UDS version 4.0.2.5
    The problem I see when I query that tag for the same time range from both historians is that the data returned from the HDA is 2 hours ahead of the IP21 data.
    We are trying to figure out if it is MII that is causing the problem or there is a setting within the HDA that is the source of the time shift.
    In addition to the above question I also have no Resolution capability in the MII query window. Resolution does not work as it does when querying IP21. The only way I can get the proper DateTime spread is to use the Row Count setting in the query. Don't know if this has any bearing on the above problem or not.
    Thanks
    Roger

    Roger,
    Why are you using the Beta for UDS? I would first upgrade that to the latest available (I  think its the one you are using for IP21).
    See if that helps.
    Thanks
    Udayan

  • PCO 2.2 - OPC and IP21

    Hi,
      We are looking at connecting to IP21 via PCO OPC DA connector.
      Can PCo only poll the IP21 OPC server for eventing or can one set up the IP21 OPC server to advise PCO on data changes for
      eventing purposes ?
    Also what is required on the server where PCo is installed to enable OPC connectivity, for browsing the IP21 we have established that you need the following dlls in the PCo system directory :
    cimsrvapi.dll
    CimWin32Util.dll
    infoplus21_api.dll
    ip21admin_client.dll
    ip21ezrpcw32.dll
    ip21winrpc32.dll
    libc21.dll
    PCo is running on Windows server 2008 R2 and the IP21 is not on the same box.
    thanks

    Hi ,
        I got it working to be able to get the notification working. Although one still cannot browse the IP21 tags, and all tags are still shown as a name space.
    a. I installed the Matricon IP21 OPC server on the same box as IP21 Historian.
    b. I connected to the IP21 server and configured new aliases in the Matricon IP21 OPC server to look at the IP21 tags
    c. I then configured PCo OPC DA agent to look at the Matricon IP21 OPC server and got the subscriptions to work, and PCo can browse the MAtricon IP21 OPC server tags that I configured , so the browsing seems to work via this OPC server
    d. Then I tried to fire up the OPC DA agent in PCo that I previously configured to look at the Aspentech IP21 OPC server, and the configuration now started to work (still can't browse the tags)
    e. I uninstalled the Matricon IP21 OPC server and the configuration in step d. still worked.
    So the conclusion is that the Matricon IP21 OPC server did some sort of a configuration that made the orginal configuration functional, this however now leaves me the question of what did this driver do to get things working.
    Now I sit with a new challenge I have PCo installed on a seperate server and in a different domain as the IP21 OPC server.
    What I have so far
    1. The Same local user on both the PCo box and the IP21 OPC server with Admin rights
    2. I can see the IP21 OPC server from the PCo box and access it
    But the issue is as soon as I fire up the Agent to run  it fails to start with the following error:
    ConnectivityAgentProxy|"The requested Performance Counter is not a custom counter, it has to be initialized as ReadOnly.
    Below is the PCo Log file:
    Date Time| Machine| Thread ID| Process ID| Process Name| Event Type| Source| Message| Stack Trace
    2012/02/24 04:12:01 PM|.|8|7888|IP21_OPC_DA|Information|AgentBase|Start ignored.  Agent state = Faulted|""
    2012/02/24 04:12:01 PM|.|6|7888|IP21_OPC_DA|Information|Host|WCF service is started.|""
    2012/02/24 04:12:01 PM|.|6|7888|IP21_OPC_DA|Error|Host|failed to create ConnectivityAgentProxy|"The requested Performance Counter is not a custom counter, it has to be initialized as ReadOnly.   Server stack trace:     at System.ServiceModel.Channels.ServiceChannel.HandleReply(ProxyOperationRuntime operation, ProxyRpc& rpc)    at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout)    at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs)    at System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation)    at System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)   Exception rethrown at [0]:     at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)    at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)    at SAP.Manufacturing.Connectivity.IPCoAgentControl.Start()    at SAP.Manufacturing.Connectivity.ConnectivityAgentProxy.Start()    at SAP.Manufacturing.Connectivity.WcfHost.Start()"
    2012/02/24 04:12:01 PM|.|8|7888|IP21_OPC_DA|Error|ServiceFaultManager|Manufacturing Fault: REASON = The requested Performance Counter is not a custom counter, it has to be initialized as ReadOnly. ; SEVERITY = Fatal|""
    2012/02/24 04:12:01 PM|.|8|7888|IP21_OPC_DA|Verbose|AgentBase|beginning PublishSubscribe CommunicationMode initialization...|""
    2012/02/24 04:12:00 PM|.|8|7888|IP21_OPC_DA|Verbose|AgentBase|starting...|""
    2012/02/24 04:12:00 PM|.|6|7888|IP21_OPC_DA|Information|Host|implicitly calling start on the hosted IConnectivityAgent service contract|""
    2012/02/24 04:11:59 PM|.|6|7888|IP21_OPC_DA|Information|Host|using default NetTcpBinding endpoint for internal IConnectivityAgent proxy|""
    2012/02/24 04:11:59 PM|.|6|7888|IP21_OPC_DA|Verbose|Host|Service endpoints:|""
    2012/02/24 04:11:59 PM|.|6|7888|IP21_OPC_DA|Verbose|Host|SAP.Manufacturing.Connectivity.Agents.Opc.Da.OpcDaAgent is running with the following endpoints:|""
    2012/02/24 04:11:58 PM|.|6|7888|IP21_OPC_DA|Information|Host|WCF service is starting.|""
    2012/02/24 04:11:58 PM|.|1|7888|IP21_OPC_DA|Verbose|OpcDaAgent|Creating the OPC DA agent.|""
    2012/02/24 04:11:58 PM|.|1|7888|IP21_OPC_DA|Verbose|BrowserSessionManager|Created browse manager.|""
    2012/02/24 04:11:58 PM|.|1|7888|IP21_OPC_DA|Verbose|OpcDaAgent|Creating the OPC DA agent.|""
    2012/02/24 04:11:58 PM|.|1|7888|IP21_OPC_DA|Verbose|BrowserSessionManager|Created browse manager.|""
    2012/02/24 04:11:58 PM|.|1|7888|IP21_OPC_DA|Verbose|Host|Running [IP21_OPC_DA] as a windows service...|""

  • Problem with PCo 2.1 and ODBC data provider

    I am trying to connect MII 12.0 to an Aspen IP.21 data historian using PCo as the universal data server. Configuration steps so far:
    1) On the machine where PCo is installed, I have created an ODBC data source using Aspen's ODBC driver for SQL+.
    2) In the PCo management console I have configured a source system using the Microsoft OLEDB Provider for ODBC Drivers, and selected the ODBC connection that I created. I click "Test Connection" and get a successful result.
    3) In the PCo management console I have configured a destination system that points to an MII server. I put in the appropriate server/port/version/credentials, and click "Test Connection", and get a successful result.
    4)  In the PCo management console I have configured an agent instance connecting the source from step 2 and the destination from step 3.
    When I start the agent instance, I get the red box with a white X in it indicating that the connection was not successful. When I go to the error logs I see:
    Error     .     6     6076     RS1630IP21T01     Host     failed to create ConnectivityAgentProxy     General PCo Fault: The .Net Framework Data Provider for OLEDB (System.Data.OleDb) does not support the Microsoft OLE DB Provider for ODBC Drivers (MSDASQL). Use the .Net Framework Data Provider for ODBC (System.Data.Odbc)
    So, I installed the .NET data provider for ODBC to try to use that instead of the OLEDB provider for ODBC. However, when I try to reconfigure the source system, I do not see the .NET provider as one of my options. This is after a reboot, and starting/stopping all of the different PCo services.
    Any thoughts experts??

    Install PCo 2.2 on a server that has network access to your IP.21 server, and that your destination server (and SAP MII server in my case) has access to.
    In the PCo2.2 Management Console:
    In the "Source Systems" section:
    Create a source system of type "IP21 Agent"
    On the Server Settings tab, provide the server name of your IP.21 server
    In the "Agent Instances" section
    Create an agent instance, picking the source system you just created
    In the Query Ports tab, under port type, select the type of system you will be communicating to. In my case, this is SAP MII, but you may be using something different.
    Also under the query ports tab, you can enter enter a port number if you like. I just accept the default, which is 9000.
    If you are going to "pull" data from the IP.21 server, this is all you need. If you want to "push" data to a destination system from your PCo server, you will need to set it up under the Destination Systems section. In my case, I am doing a data pull, so I haven't done much with destination systems.
    Not sure what your destination system is, but in my case it is MII. For MII here are the basic steps:
    Create a new UDC data server in the MII menu under Data Services -> Data Servers.
    Set the IP address of the data server to the IP address of your PCo server.
    Set the port number of the data server to the port number you set up in the agent instance.
    Make sure the agent instance is started on your PCo server.
    Create a new business logic transaction containing a Tag query, and configure the tag query to use the new MII data server you just created to query the tag(s) you are interested in.

  • Interface between SAP and OSI - PI

    Team,
    Appreciate your response for a query from a customer. Find below
    Kindly help us to get some more details from SAP about the connectivity between OSI-PI system and SAP (PP,EHSM and QM).
    Because, we might use only for one way communication (pull) the data from OSI-PI to get plant information to update our SAP –ECC for informative
    purpose of production reports and EHS.
    Queries:
    Plan A
    1.      Whether OSI-PI RLink is enough for the connectivity to SAP?
    2.      Whether any other interface other than SAP-PI or MII to connect OSI PI?
    Plan B
        1.      From this year,  we are using Honeywell DCS (SCADA) system, whether Honeywell PHD system could connect SAP?
    2.      If the above answer yes , then what is the standard interface using for SAP and Honeywell PHD ?
       The above queries raised because of clarity required for OSI –PI interface minimal connectivity requirement.
    Thanks and regards,
    Irfan

    Hi Ifran,
    Recommend that you use PCo amd MII to integrate to ECC. MII has JCO and BAPI connectors for ECC as well as the capablilty to implement Listeners to receive IDOC from ECC. MII has additonal capabilities such as the Plant Information Catalog that will be very beneficial in defining historian data and providing business context around it.
    PCo has a native OSP PI connector as well as MII connectors that can execute MII transactions directly; the transactions can then execute JCO and BAPI to ECC.
    PCo can connect to Honeywell PHD using the PCo OPC HDA connector. (The Honeywell historian OPC server will need to be installed and activated, preferably on the PCo server.)  PCo also has connectors for TCP Socket, OPC DA, OPC UA, OPC AE, ODBC, OLEDB, FileMonitor, and additional native historian connectors (Aspentech IP21, GE Proficy, CiTectSCADA).
    Regards, Steve

  • A problem with Threads and loops.

    Hi, I have some code that needs to be constantly running, like while(true)
          //code here
    }However, the code just checks to see if the user has input anything (and then if the user has, it goes to do some other stuff) so I don't need it constantly running and hogging up 98% of the CPU. So I made my class (which has the method that needs to be looped, call it ClassA) implement Runnable. Then I just added the method which needed to be looped into the public void run()
    I have another class which creates an instance of the above class (call it ClassB), and the main(String[] args) is in there.
    public static void main(String[] args)
              ClassA test = new ClassA();
              Thread thread = new Thread(test.getInstanceOfClassA());
              thread.start();
              while(true)
                           //I do not know what to put here
                   try
                        thread.sleep(100);
                   catch(InterruptedException iex)
         }However, the thread only calls run() once,(duh...) but I can't think of away to get it to run - sleep - run -sleep forever. Can someone help me?

    Hi, I have some code that needs to be constantly
    running, like while(true)
    //code here
    }However, the code just checks to see if the user has
    input anything (and then if the user has, it goes to
    do some other stuff) so I don't need it constantly
    running and hogging up 98% of the CPU. Where does the user input come from. Are you reading from an InputStream? If so, then your loop will be blocked anyway when reading from the InputStream until data is available. During that time, the loop will not consume processor cycles.
    public static void main(String[] args)
              ClassA test = new ClassA();
    Thread thread = new Thread(test.getInstanceOfClassA());I have never seen this idiom. If ClassA instanceof Runnable, you simply write new Thread(test).
              thread.start();
              while(true)
    //I do not know what to put
    do not know what to put here
                   try
                        thread.sleep(100);
                   catch(InterruptedException iex)
         }However, the thread only calls run() once,(duh...)Yeah, why would you want to call it more than once given that you have an infinite loop in ClassA.run()?
    Harald.
    Java Text Crunching: http://www.ebi.ac.uk/Rebholz-srv/whatizit/software

  • A problem with Threads and MMapi

    I am tring to execute a class based on Game canvas.
    The problem begin when I try to Play both a MIDI tone and to run an infinit Thread loop.
    The MIDI tone "Stammers".
    How to over come the problem?
    Thanks in advance
    Kobi
    See Code example below:
    import java.io.IOException;
    import java.io.InputStream;
    import javax.microedition.lcdui.Graphics;
    import javax.microedition.lcdui.Image;
    import javax.microedition.lcdui.game.GameCanvas;
    import javax.microedition.media.Manager;
    import javax.microedition.media.MediaException;
    import javax.microedition.media.Player;
    public class MainScreenCanvas extends GameCanvas implements Runnable {
         private MainMIDlet parent;
         private boolean mTrucking = false;
         Image imgBackgound = null;
         int imgBackgoundX = 0, imgBackgoundY = 0;
         Player player;
         public MainScreenCanvas(MainMIDlet parent)
              super(true);
              this.parent = parent;
              try
                   imgBackgound = Image.createImage("/images/area03_bkg0.png");
                   imgBackgoundX = this.getWidth() - imgBackgound.getWidth();
                   imgBackgoundY = this.getHeight() - imgBackgound.getHeight();
              catch(Exception e)
                   System.out.println(e.getMessage());
          * starts thread
         public void start()
              mTrucking = true;
              Thread t = new Thread(this);
              t.start();
          * stops thread
         public void stop()
              mTrucking = false;
         public void play()
              try
                   InputStream is = getClass().getResourceAsStream("/sounds/scale.mid");
                   player = Manager.createPlayer(is, "audio/midi");
                   player.setLoopCount(-1);
                   player.prefetch();
                   player.start();
              catch(Exception e)
                   System.out.println(e.getMessage());
         public void run()
              Graphics g = getGraphics();
              play();
              while (true)
                   tick();
                   input();
                   render(g);
          * responsible for object movements
         private void tick()
          * response to key input
         private void input()
              int keyStates = getKeyStates();
              if ((keyStates & LEFT_PRESSED) != 0)
                   imgBackgoundX++;
                   if (imgBackgoundX > 0)
                        imgBackgoundX = 0;
              if ((keyStates & RIGHT_PRESSED) != 0)
                   imgBackgoundX--;
                   if (imgBackgoundX < this.getWidth() - imgBackgound.getWidth())
                        imgBackgoundX = this.getWidth() - imgBackgound.getWidth();
          * Responsible for the drawing
          * @param g
         private void render(Graphics g)
              g.drawImage(imgBackgound, imgBackgoundX, imgBackgoundY, Graphics.TOP | Graphics.LEFT);
              this.flushGraphics();
    }

    You can also try to provide a greater Priority to your player thread so that it gains the CPU time when ever it needs it and don't harm the playback.
    However a loop in a Thread and that to an infinite loop is one kind of very bad programming, 'cuz the loop eats up most of your CPU time which in turn adds up more delays of the execution of other tasks (just as in your case it is the playback). By witting codes bit efficiently and planning out the architectural execution flow of the app before start writing the code helps solve these kind of issues.
    You can go through [this simple tutorial|http://oreilly.com/catalog/expjava/excerpt/index.html] about Basics of Java and Threads to know more about threads.
    Regds,
    SD
    N.B. And yes there are more articles and tutorials available but much of them targets the Java SE / EE, but if you want to read them here is [another great one straight from SUN|http://java.sun.com/docs/books/tutorial/essential/concurrency/index.html] .
    Edited by: find_suvro@SDN on 7 Nov, 2008 12:00 PM

  • Problem with Threads and a static variable

    I have a problem with the code below. I am yet to make sure that I understand the problem. Correct me if I am wrong please.
    Code functionality:
    A timer calls SetState every second. It sets the state and sets boolean variable "changed" to true. Then notifies a main process thread to check if the state changed to send a message.
    The problem as far I understand is:
    Assume the timer Thread calls SetState twice before the main process Thread runs. As a result, "changed" is set to true twice. However, since the main process is blocked twice during the two calls to SetState, when it runs it would have the two SetState timer threads blocked on its synchronized body. It will pass the first one, send the message and set "changed" to false since it was true. Now, it will pass the second thread, but here is the problem, "changed" is already set to false. As a result, it won't send the message even though it is supposed to.
    Would you please let me know if my understanding is correct? If so, what would you propose to resolve the problem? Should I call wait some other or should I notify in a different way?
    Thanks,
    B.D.
    Code:
    private static volatile boolean bChanged = false;
    private static Thread objMainProcess;
       protected static void Init(){
            objMainProcess = new Thread() {
                public void run() {
                    while( objMainProcess == Thread.currentThread() ) {
                       GetState();
            objMainProcess.setDaemon( true );
            objMainProcess.start();
        public static void initStatusTimer(){
            if(objTimer == null)
                 objTimer = new javax.swing.Timer( 1000, new java.awt.event.ActionListener(){
                    public void actionPerformed( java.awt.event.ActionEvent evt){
                              SetState();
        private static void SetState(){
            if( objMainProcess == null ) return;
            synchronized( objMainProcess ) {
                bChanged = true;
                try{
                    objMainProcess.notify();
                }catch( IllegalMonitorStateException e ) {}
        private static boolean GetState() {
            if( objMainProcess == null ) return false;
            synchronized( objMainProcess ) {
                if( bChanged) {
                    SendMessage();
                    bChanged = false;
                    return true;
                try {
                    objMainProcess.wait();
                }catch( InterruptedException e ) {}
                return false;
        }

    Thanks DrClap for your reply. Everything you said is right. It is not easy to make them alternate since SetState() could be called from different places where the state could be anything else but a status message. Like a GREETING message for example. It is a handshaking message but not a status message.
    Again as you said, There is a reason I can't call sendMessage() inside setState().
    The only way I was able to do it is by having a counter of the number of notifies that have been called. Every time notify() is called a counter is incremented. Now instead of just checking if "changed" flag is true, I also check if notify counter is greater than zero. If both true, I send the message. If "changed" flag is false, I check again if the notify counter is greater than zero, I send the message. This way it works, but it is kind of a patch than a good design fix. I am yet to find a good solution.
    Thanks,
    B.D.

  • Problem with Threads and "plase wait..."-Window

    Hi everyone,
    I have a problem that I'm not able to solve in any way... I have a time-consuming task (a file decryption) which I execute in a separate thread; I've used the SwingWorker class, like suggested by sun-tutorial, and it works right. The problem is that I have to wait that the decryption have finished before continuing with program-execution. Therefore I would like to display a "please wait"-window while the task runs. I've tryed all the possible ways I know but the problem is always the same: the waitWindow is displayed empty, the bounds are painted but the contents no; it's only painted when the decrypt-task has finished. Please help me, I have no more resources....
    decrypt-file code:
    public class DecryptFile {
      private String cryptedFileNameAndPath;
      private ByteArrayInputStream resultStream = null;
      // need for progress
      private int lengthOfTask;
      private int current = -1;
      private String statMessage;
      public DecryptFile(String encZipFileNameAndPath) {
        cryptedFileNameAndPath = encZipFileNameAndPath;
        //Compute length of task...
        // 0 for indeterminate
        lengthOfTask = 0;
      public ByteArrayInputStream getDecryptedInputStream() {
        return this.resultStream;
       * Called from ProgressBarDemo to start the task.
      public void go() {
        current = -1;
        final SwingWorker worker = new SwingWorker() {
          public Object construct() {
            return new ActualTask();
        worker.start();
       * Called from ProgressBarDemo to find out how much work needs
       * to be done.
      public int getLengthOfTask() {
        return lengthOfTask;
       * Called from ProgressBarDemo to find out how much has been done.
      public int getCurrent() {
        return current;
      public void stop() {
        current = lengthOfTask;
       * Called from ProgressBarDemo to find out if the task has completed.
      public boolean done() {
        if (current >= lengthOfTask)
          return true;
        else
          return false;
      public String getMessage() {
        return statMessage;
       * The actual long running task.  This runs in a SwingWorker thread.
      class ActualTask {
        ActualTask () {
          current = -1;
          statMessage = "";
          resultStream = AIUtil.getInputStreamFromEncZip(cryptedFileNameAndPath); //here the decryption happens
          current = 0;
          statMessage = "";
      }The code that calls decryption and displays waitWindow
          final WaitSplash wS = new WaitSplash("Please wait...");
          final DecryptFile cryptedTemplate = new DecryptFile (this.templateFile);
          cryptedTemplate.go();
          while (! cryptedTemplate.done()) {
            try {
              wait();
            } catch (Exception e) { }
          this.templateInputStream = cryptedTemplate.getDecryptedInputStream();
          wS.close();Thanks, thanks, thanks in advance!
    Edoardo

    Maybe you can try setting the priority of the long-running thread to be lower? so that the UI will be more responsive...

  • Problem with threads and graphics

    I have a thread that chooses paths for a Travelling salesman problem, it then calls a TSPdraw class and passes it the path, which the class then draws. the problem is when i have two threads it creates two windows but only draws a path in one of them. any ideas where i`m going wrong

    Are you using swing components? Swing isn't threadsafe. If you have multiple threads that want to update your UI you need to use the SwingUtilities.invokeLater(...)or invokeAndWait(...). There is a page in the swing tutorial about this at: http://java.sun.com/docs/books/tutorial/uiswing/misc/threads.html

  • Problem with threads and ProgressMonitor

    Dear Friends:
    I have a little problem with a thread and a ProgressMonitor. I have a long time process that runs in a thread (the thread is in an separate class). The thread has a ProgressMonitor that works fine and shows the tasks progress.
    But I need deactivate the main class(the main class is the user interface) until the thread ends.
    I use something like this:
    LongTask myTask=new LongTask();
    myTask.start();
    myTask.join();
    Now, the main class waits for the task to end, but the progress monitor don`t works fine: it shows only the dialog but not the progress bar.
    What's wrong?

    Is the dialog a modal dialog? This can block other UI updates.
    In general, you should make sure that it isn't modal, and that your workThread has a fairly low priority so that the UI can do its updating

  • Problem with threads and/or memory

    I'm developing an application where there are 3 threads. One of them sends a request to the other, and if the 2nd can't answer it, it sends it to the 3rd (similar to CPU -> CACHE -> MEMORY). When i run the program with 1000-10.000 requests, no problem occurs. When i run it with 300.000-1.000.000 requests, it sometimes hangs. Is this a problem with the garbage collector, or should it be related to the threads mecanism.
    (note: eache thread is in execution using a finite state machine)

    i had been running the program inside Netbeans.
    Running the jar using the command line outside
    Netbeans i have no more problems... Does Netbeans use
    it's own JVM?Depends how you set it up, but look under the options. There are settings for the compiler and jvm that it uses.

  • Null And " "

    What is the difference between these two lines of codes?
    String currentFile = null;
    String currentFile = "";
    Edited by: AMARSHI on Jul 10, 2008 7:07 AM

    The reference variable itself, takes up the same amount of space, of course, as all references are the same size. Now, the object on the heap is a different story. With null there isn't one, of course (or if there is there is only one for the entire VM), and for the second a String object will be created in the String pool (once again, only one for the entire VM that every = "" assignment will use). But really, what difference does it make? If there is a difference, it is on the order of a few bytes (at max) for the entire VM, and if this is a concern, your probably doing something else greviously wrong. This miniscule difference should not concern you.
    Edit: And "nulling" variables to "save" memory is also not something you should be concerned with. Either the variable will go out of scope and the object garbage collected anyway, or it's in constant use and so will not be taking up any extraneous heap space. If one of those is not the case, you are, once again, doing something greviously wrong.

Maybe you are looking for

  • Is there a limitation on the no. of digits for constant function

    hi I want to compare a value of a certain field with a Constant with 89999999999 and pass the value only if it is  less than this . I am using the less standard function and comparing the value .If it less than that only then I can pass the value how

  • Disabling constraints on a schema

    Guys and Gurus In Oracle 10g, is it possible to temporarily disable all constraints on a particular schema with the view of reenabling them at a later date? This would save time in a particularly massive schema. Many Thanks Message was edited by: The

  • Can't load Vista from factory recovery disks?

    I have an X200 running XP. The X200 was delivered with XP installed and Vista recovery disks. I wanted to see how Vista performed so I decided to load the Vista from the factory recovery disks. There are 3 disks...Disk1 Start Recovery Disk, Disk2 OS

  • Font in menu bar in CS5

    The font is very light on the menu bar in CS5. However Bridge in CS5 is bold and easy to read (as is the menu in PS CS3). How do I adjust the appearance of the menu bar? I would also like the gray color on the menu bar and tool bar and in the backgro

  • No Talk back from Voice Control

    About 3 weeks ago my voice control stopped talking back to me.    I've done all the regular reboot stuff and checked the settings and tried everything I can think of to turn it back on.   Is this an OS problem?  I'm currently running 10.2.1.537    If