ST2540 and VxDMP

Hi:
I've a customer with the following config:
V880 with 2 x F/C controller
ST2540 with 2 x controller
Solaris 10 U4
EIS DVD April 09
Storage Foundation 5.0 patched with EIS DVD April 09
For one reason or another, mpxio was not used. I created a 2540 volume and presented to the server and use VxVM to create vxfs volumes without any problem. However, when I do a 'mkfile 100g a', and running iostat on another window, I can see that the io is running through the 2 paths c9 and c11, at the same time plenty of write errors appear in the messages file.
Jul 6 12:06:01 xxxxxx041 scsi: [ID 107833 kern.warning] WARNING: /pci@9,600000/
SUNW,qlc@1,1/fp@0,0/ssd@w202500a0b86731c0,0 (ssd18):
Jul 6 12:06:01 xxxxxx041 Error for Command: write(10) Error
Level: Retryable
Jul 6 12:06:01 xxxxxx041 scsi: [ID 107833 kern.notice] Requested Block:
64199456 Error Block: 0
Jul 6 12:06:01 xxxxxx041 scsi: [ID 107833 kern.notice] Vendor: SUN
Serial Number:
Jul 6 12:06:01 xxxxxx041 scsi: [ID 107833 kern.notice] Sense Key: Abort
ed Command
Jul 6 12:06:01 xxxxxx041 scsi: [ID 107833 kern.notice] ASC: 0x0 (no add
itional sense info), ASCQ: 0x0, FRU: 0x0
Jul 6 12:06:01 xxxxxx041 scsi: [ID 107833 kern.warning] WARNING: /pci@9,600000/
SUNW,qlc@1,1/fp@0,0/ssd@w202500a0b86731c0,0 (ssd18):
Jul 6 12:06:01 xxxxxx041 Error for Command: write(10) Error
Level: Retryable
Jul 6 12:06:01 xxxxxx041 scsi: [ID 107833 kern.notice] Requested Block:
64201504 Error Block: 0
Jul 6 12:06:01 xxxxxx041 scsi: [ID 107833 kern.notice] Vendor: SUN
Serial Number:
Jul 6 12:06:01 xxxxxx041 scsi: [ID 107833 kern.notice] Sense Key: Abort
ed Command
Jul 6 12:06:01 xxxxxx041 scsi: [ID 107833 kern.notice] ASC: 0x0 (no add
itional sense info), ASCQ: 0x0, FRU: 0x0
Jul 6 12:06:01 xxxxxx041 scsi: [ID 107833 kern.warning] WARNING: /pci@9,600000/
SUNW,qlc@1,1/fp@0,0/ssd@w202500a0b86731c0,0 (ssd18):
Jul 6 12:06:01 xxxxxx041 Error for Command: write(10) Error
Level: Retryable
Jul 6 12:06:01 xxxxxx041 scsi: [ID 107833 kern.notice] Requested Block:
64189216 Error Block: 0
Jul 6 12:06:01 xxxxxx041 scsi: [ID 107833 kern.notice] Vendor: SUN
Serial Number:
Jul 6 12:06:01 xxxxxx041 scsi: [ID 107833 kern.notice] Sense Key: Abort
ed Command
Jul 6 12:06:01 xxxxxx041 scsi: [ID 107833 kern.notice] ASC: 0x0 (no add
itional sense info), ASCQ: 0x0, FRU: 0x0
I face this problem before and turn on mpxio to 'solve' the problem. I've set in the CAM software the host type as "Solaris with Veritas DMP". I can't find any ASL for 2540 either. I've tried with vxfs and ufs, both giving the same results. To get rid of the gazillion retryable write error I have to set one of the path to standby! But occasionally the write errors will appear on console when the system boots up. Is there a fix for this or must I use mpxio? Thanks a lot in advance.
regards,
BSF

Hi:
I've a customer with the following config:
V880 with 2 x F/C controller
ST2540 with 2 x controller
Solaris 10 U4
EIS DVD April 09
Storage Foundation 5.0 patched with EIS DVD April 09
For one reason or another, mpxio was not used. I created a 2540 volume and presented to the server and use VxVM to create vxfs volumes without any problem. However, when I do a 'mkfile 100g a', and running iostat on another window, I can see that the io is running through the 2 paths c9 and c11, at the same time plenty of write errors appear in the messages file.
Jul 6 12:06:01 xxxxxx041 scsi: [ID 107833 kern.warning] WARNING: /pci@9,600000/
SUNW,qlc@1,1/fp@0,0/ssd@w202500a0b86731c0,0 (ssd18):
Jul 6 12:06:01 xxxxxx041 Error for Command: write(10) Error
Level: Retryable
Jul 6 12:06:01 xxxxxx041 scsi: [ID 107833 kern.notice] Requested Block:
64199456 Error Block: 0
Jul 6 12:06:01 xxxxxx041 scsi: [ID 107833 kern.notice] Vendor: SUN
Serial Number:
Jul 6 12:06:01 xxxxxx041 scsi: [ID 107833 kern.notice] Sense Key: Abort
ed Command
Jul 6 12:06:01 xxxxxx041 scsi: [ID 107833 kern.notice] ASC: 0x0 (no add
itional sense info), ASCQ: 0x0, FRU: 0x0
Jul 6 12:06:01 xxxxxx041 scsi: [ID 107833 kern.warning] WARNING: /pci@9,600000/
SUNW,qlc@1,1/fp@0,0/ssd@w202500a0b86731c0,0 (ssd18):
Jul 6 12:06:01 xxxxxx041 Error for Command: write(10) Error
Level: Retryable
Jul 6 12:06:01 xxxxxx041 scsi: [ID 107833 kern.notice] Requested Block:
64201504 Error Block: 0
Jul 6 12:06:01 xxxxxx041 scsi: [ID 107833 kern.notice] Vendor: SUN
Serial Number:
Jul 6 12:06:01 xxxxxx041 scsi: [ID 107833 kern.notice] Sense Key: Abort
ed Command
Jul 6 12:06:01 xxxxxx041 scsi: [ID 107833 kern.notice] ASC: 0x0 (no add
itional sense info), ASCQ: 0x0, FRU: 0x0
Jul 6 12:06:01 xxxxxx041 scsi: [ID 107833 kern.warning] WARNING: /pci@9,600000/
SUNW,qlc@1,1/fp@0,0/ssd@w202500a0b86731c0,0 (ssd18):
Jul 6 12:06:01 xxxxxx041 Error for Command: write(10) Error
Level: Retryable
Jul 6 12:06:01 xxxxxx041 scsi: [ID 107833 kern.notice] Requested Block:
64189216 Error Block: 0
Jul 6 12:06:01 xxxxxx041 scsi: [ID 107833 kern.notice] Vendor: SUN
Serial Number:
Jul 6 12:06:01 xxxxxx041 scsi: [ID 107833 kern.notice] Sense Key: Abort
ed Command
Jul 6 12:06:01 xxxxxx041 scsi: [ID 107833 kern.notice] ASC: 0x0 (no add
itional sense info), ASCQ: 0x0, FRU: 0x0
I face this problem before and turn on mpxio to 'solve' the problem. I've set in the CAM software the host type as "Solaris with Veritas DMP". I can't find any ASL for 2540 either. I've tried with vxfs and ufs, both giving the same results. To get rid of the gazillion retryable write error I have to set one of the path to standby! But occasionally the write errors will appear on console when the system boots up. Is there a fix for this or must I use mpxio? Thanks a lot in advance.
regards,
BSF

Similar Messages

  • NetApp and Hitachi SAN

    I have a Solaris 9 server attached to a SAN fabric using two Silkworms 3850 with two emulex LP9002L-F2 cards. Presently there is a Hitachi 9500V storage presenting LUNs to the Sol9 server without any problems. We aquired two Netapp Filers 3820c that are attached to the SAN fabric. The server uses Veritas FS 4.1 and vxdmp for failover.
    My question is:
    Do I need separate HBA cards for each storage? one set for hitachi and one set for NetApp ? Or just the existing HBAs will do as long as the NetApp presents luns to it ?The NetApp techie says you can not access more than one storage at a time. Is either All hitachi or all SAN.
    Please shed some light!.
    Thanks in advanced.

    There is what works.
    There is what is supported.
    It probably works to present the NetApp LUNs to the same HBAs that are accessing the SAN. However, if NetApp says it isn't supported .... then you need to ask them why.

  • ST2540 cannot be detected by Sunfire x4440 with windows 200

    we installed windows 2008 on x4440 and attached ST2540 to it.x4440 server cannot detect the storage.how do we go about on these situation?
    Edited by: sajulga on Aug 26, 2010 6:34 AM

    The GeForce 8800 GS in an iMac is equivalent to a GeForce 8800M GTS in a PC.
    Forceware driver 178.15 offers support for GeForce 8800M GTS:
    http://laptopvideo2go.com/forum/index.php?showtopic=20927
    Run that exe in Vista 64x, and then select the INF file from the Device Manager manual driver update instructions instead of picking from the list (which doesn't contain GeForce 8800 GS).
    GF 8800 GS does NOT equal GF 8800 GT. Very different cards.
    http://en.wikipedia.org/wiki/GeForce8_series#8800GS
    See http://discussions.apple.com/thread.jspa?messageID=8281574#8281574 for more info.
    I didn't figure out how to get this to work on 32-bit Vista.

  • ST2540 retryable error

    Hi ,
    I have a single path connection to ST2540 with host running solaris 9 and the host type set to solaris (with Veritas DMP or other) .
    The following error were encountered when access the volume on ST2540 . However there seem to be no
    harm to the application . What could be possible go wrong ? Could it be that i should set the host type
    to solaris (with traffic manager ) ??
    root@test:/]tail /var/adm/messages
    Feb 5 14:11:29 test scsi: [ID 107833 kern.notice] Requested Block: 114301872 Error Block: 114301872
    Feb 5 14:11:29 test scsi: [ID 107833 kern.notice] Vendor: SUN Serial Number: g , K x
    Feb 5 14:11:29 test scsi: [ID 107833 kern.notice] Sense Key: Unit Attention
    Feb 5 14:11:29 test scsi: [ID 107833 kern.notice] ASC: 0x8b (<vendor unique code 0x8b>), ASCQ: 0x2, FRU: 0x0
    Feb 5 14:11:30 test scsi: [ID 107833 kern.warning] WARNING: /pci@1d,700000/SUNW,emlxs@1/fp@0,0/ssd@w202400a0b867fe90,1 (ssd1):
    Feb 5 14:11:30 test Error for Command: write(10) Error Level: Retryable
    Feb 5 14:11:30 test scsi: [ID 107833 kern.notice] Requested Block: 114301872 Error Block: 114301872

    If you have a dual controller and only connect one fiber to one controller, this is a bad configuration which will lead soon or later to complications. For example you won't be able to upgrade the controller firmware online.
    The asc/ascq 8b/02 you get in the events mean that your server was accessing the lun 1 through the alternate controller and the controller returning these events is quiescing the io due to the internal volume failover.
    I would strongly suggest you to:
    - connect both controllers to the server
    - if this is a solaris server, enable mpxio (see the doc for the procedure)
    If you need a more detailed explanation, please log a service request with us and provide us with a supportdata from this array as well as an explorer from the server.
    Regards

  • Got error with newfs command for disk on a Storagetek ST2540.

    Hi,
    It's the first time that use forum and I have pour english language.
    I have Solaris 9 on Sunfire V480 with Qlogic HBA qla2340 connected to SAN ST2540.
    I have 3 LUNs on virtual disk on ST2540 (2 X 2TB and 1 about 730 GB).
    I can create a UFS file system on one of those 3 LUNs.
    A UFS file sytem of 2 TB.
    I got error on ohters like this.
    newfs /dev/rdsk/c6t3d2s0
    newfs: construct a new file system /dev/rdsk/c6t3d2s0: (y/n)? y
    Warning: 2128 sector(s) in last cylinder unallocated
    /dev/rdsk/c6t3d2s0: 4095981488 sectors in 666664 cylinders of 48 tracks, 128 sectors
    1999991.0MB in 4662 cyl groups (143 c/g, 429.00MB/g, 448 i/g)
    super-block backups (for fsck -F ufs -o b=#) at:
    32, 878752, 1757472, 2636192, 3514912, 4393632, 5272352, 6151072, 7029792,
    7908512,
    Initializing cylinder groups:
    ...........................write error on sector 1182585152: I/O error
    Log message in /var/adm/messages
    scsi: [ID 107833 kern.warning] WARNING: /pci@8,600000/QLGC,qla@1/sd@3,2 (sd99):
    SCSI transport failed: reason 'aborted': retrying command
    I don't know which trace look for.
    It is somebody has a idea?

    try the -T param for newfs. beware that you need a later edition of solaris 9.. 08/03 or so...
    Edited by: sid_sanders on Sep 12, 2008 2:47 PM

  • ST2540 Fw upgrade from 6.x to 7.x

    Hi Experts,
    I am planning to upgrade the ST2540 controller firmware from 6.x to 7.35 using "*Storage Firmware Upgrade Utility*".
    We have a cluster running with two ST2540 shared storages ( one storage is mirror to another using SVM).
    Now, I have a doubt whether we need to detach the sub-mirrors of the storage before upgrading its firmware or the Upgrade utiltiy will take care itself.
    Thanks,
    Nitin K

    nitin.k wrote:
    Hi Experts,
    I am planning to upgrade the ST2540 controller firmware from 6.x to 7.35 using "*Storage Firmware Upgrade Utility*".
    We have a cluster running with two ST2540 shared storages ( one storage is mirror to another using SVM).
    Now, I have a doubt whether we need to detach the sub-mirrors of the storage before upgrading its firmware or the Upgrade utiltiy will take care itself.
    The upgrade utility will not take care itself. The utility will not take care of any external S/W you use to mirror your arrays, hence you need to completely stop the I/O on the array you will upgrade, and before starting this special upgrade.
    In other words, you have to use SVM to split your mirror and stop the I/O before you can start the upgrade.
    Regards
    Nicolas

  • Backup and restore VXFS

    H&iacute;,
    I&acute;ve upgraded a vxfs file system to layout 6 and i need to downgrade to layout 5. I&acute;ve tried make a backup by dd and restore by dd in a new file system with layout 5.
    Anyone can help me?
    Thank you,
    Fernando

    Try this
    I am making an assumption here that you have a mounted vxfs filesystem and a mounted filesystem for output (the location of the DD file) uless you were DD from one to another....
    There are several ways....
    If you have a vxfs filesystem and a partition that you want to dump out to try this:
    vxdump 0f /<mounted partition>/disk.vxdmp <filesystem to be dumped>
    then re-layout the filesystem and use vxrestore to get the files back.
    cd to the destination and then
    vxrestore -xf /mounted partition>/disk.vxdmp
    If you're moving it from one place to another, for example you have old layout 6 filesystem on /6 and destination layout 5 partition /5 try this
    vxdump 0f - /6 | (cd /5; vxrestore xf -)
    This is straight from the vxrestore man page. No magic here, been doing it since tar days.
    Hope this helps.

  • Solaris 9, /var/sadm/install/contents and fix-modes issues

    I'm in the middle of patching a bunch of systems right now using Martin Paul's PCA and Casper Dik's fix-modes and I'm getting some rather odd error messages from fix-modes after installing the Recommended and Security patches from 06 August 2007.
    I'm seeing this on better than a dozen machines right now, and it doesn't seem to be consistent on which entries have the problems.
    Here's a snippet of the fix-modes output:
    WARNING: Unparseble mode "?" at /var/sadm/install/contents:107
    WARNING: Unparseble mode "?" at /var/sadm/install/contents:1238
    WARNING: Unparseble mode "?" at /var/sadm/install/contents:2348
    WARNING: Unparseble mode "?" at /var/sadm/install/contents:2359
    secure-modes: WARNING: Incomplete entry at /var/sadm/install/contents:2377
    secure-modes: WARNING: Incomplete entry at /var/sadm/install/contents:2380
    And here's the lines referenced in the snippet above:
    107: /etc/VRTSvcs/conf/config d none ? ? ? VRTSweb
    1238: /etc/opt/SUNWsrspx d none ? ? ? SUNWsrspx
    2348: /kernel/drv/vxapm d none ? ? ? VRTSvxvm
    2359: /kernel/drv/vxapm/sparcv9 d none ? ? ? VRTSvxvm
    2377: /kernel/drv/vxdmp.conf ? none VRTSvxvm
    2380: /kernel/drv/vxio.conf ? none VRTSvxvm
    Has anyone seen this behavior before? Does anyone have any suggestions on how to remedy this?
    fpsm

    IMHO the only thing that should modify the contents of /var/sadm/install/contents is a system utility. There is work currently underway to update the way that this file is modified.
    http://mail.opensolaris.org/pipermail/opensolaris-arc/2009-March/014675.html
    alan

  • 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.

Maybe you are looking for

  • Any ideas on how to do a local mirror for this situation?

    I'm starting a project to allow ArchLinux to be used on a Cluster environment (autoinstallation of nodes and such). I'm going to implement this where I'm working right now (~25 node cluster). Currently they're using RocksClusters. The problem is that

  • Sale process flow of SBO E-Commerce - What documents are created in SAP B1?

    Dear All, Can any one please confirm the sale process flow of SBO E-Commerce, when a customer submits an Sales Order and pays the amount online? I am mainly interested to know about the documents, which are created in SAP B1 after the said Payment ag

  • How to send an attachment thru mail in SAP?

    Hi all, I have an file which has been sent by the customer. The file type may vary each & every week (sometimes XLS, sometimes CSV & sometimes notepad). This file has to be sent to another person thru mail as an attachment. Is it possible to send thr

  • Intel-chip Compatibility Problem

    Question: I downloaded a cheap RPG that I used to play on my old mac (Realmz from Fantasoft.com), and it won't work on my new Macbook Pro. Is there any easy way, besides getting Windows XP on my Mac, to play this game? Is there any Mac software I can

  • HAPPY BIRTHDAY, BUG 3169222!!

    Dear Bug 3169222, today is your second birthday and I wish you a happy one! We created you two years ago. Since then, you cost us a lot of time and money, it's true, it' true. We created memory leaks and we had to buy profiling software since we cann