Strange backingMapListener / processor behaviour

Hi,
I have cache X and backingMap listener on that cache.
On insert of entity with key Z the listner invokes (asynchronously) an invocable via the invocation service.
Inside the invocable I run an EntryProcessor against the same cache X and key Z - in some situations (like repartition) the processor does not see the value.
Could it be that my invocable is started before the cache.add() operation is yet completed?
BR,
Georgi

Hi,
Once again (just to be sure) - the listener is a BackingMap listener. It is registered with the wflCache.
The effect is observed when adding new node to the cluster (wflCache is partitioned) and the problem manifests itself only on the new node!
I have some suspicion that I am getting mismatch in the key hash code when the entry is transferred.
Code below.
10x & BR,
Georgi
     protected void onMapEvent(MapEvent evt) {
          if (evt.getId() == MapEvent.ENTRY_INSERTED){
final WorkflowEntry wfe = (WorkflowEntry) ctx.getValueFromInternalConverter().convert(evt.getNewValue());
               final WorkflowKey wflKey = (WorkflowKey) ctx.getKeyFromInternalConverter().convert(evt.getKey());
               invocationService().execute(
                         new WFLDriver(wflKey, wfe, wflCache, masterCache, detailCache),
                         AssetsBean.getInstance().getLocalMemberSet(),
                         null);
public class WFLDriver extends AbstractInvocable implements ExternalizableLite{
     public void run() {
          wflCache.invoke(wflKey, new AdvanceProcessor(WorkflowStates.ChildUpdateDone));
public class AdvanceProcessor implements EntryProcessor, ExternalizableLite {
     protected transient Logger log = Logger.getLogger(this.getClass());
     private WorkflowStates targetState;
     public AdvanceProcessor() {
     public AdvanceProcessor(WorkflowStates newState) {
          this.targetState = newState;
     public Object process(Entry arg0) {
          if (!arg0.isPresent()) {
               log.error("non-eixstent value for wfl item " + arg0.getKey() + " while advancing to " + targetState);
          } else {
               WorkflowEntry ee = ((WorkflowEntry) arg0.getValue());
               if (ee == null)
                    log.error("null value for wfl item " + arg0.getKey() + " while advancing to " + targetState);
               else {
                    ee.advanceTo(targetState);
                    arg0.setValue(ee);
          return null;
}

Similar Messages

  • CSM : Strange Round-Robin behaviour

    Hi,
    During validation tests, I am observing a strange server selection behaviour, on independent GET requests (no cookie included) : When a connection request arrives in the CSM within a time window of about 20 seconds after the previous request, then the CSM correctly selects the next real server in the farm (round-robin). However, if the second connection arrives more than 20 sec after the previous request, the CSM selects the same server as for the previous one. Everything looks like the round-robin algorithm would be "reset" after this periood of time.
    Is it a normal behaviour ?
    By the way, how is the server list organized in the CSM RR algorithm ?
    Thank you
    Yves Haemmerli

    Gilles,
    As you requested, I send you the traces showing that when sessions are established with long delay between them, the round-robin load balancing is not consistent.
    Here are some important infos :
    - Client IP address is 141.122.142.197
    - VIP address is 160.213.139.14
    - We NAT the client with the VIP address
    - Servers addresses are :
    -> 160.213.139.163
    -> 160.213.139.164
    -> 160.213.139.165
    -> 160.213.139.166
    -> 160.213.139.171
    -> 160.213.139.172
    -> 160.213.139.173
    -> 160.213.139.174
    I ran two tests. Fore each of them I send you one trace showing the frames (HTTP on TCP port 26000)between the client and the CSM, and a second trace showing the frames between the CSM and the servers. In the trace, please forget about the HTTP code 401 returned by the servers). Also, note that the sessions are kept open by my session generator, in order to do the test.
    In the first test, I sent 16 sessions in the raw without delay between them. Load balancing is perfect, each of the eight servers receives 2 sessions.
    Than, I sent 16 sessions, one after the other, with several seconds between them. As you can see, the load balancing is uneven in this case.
    I can't understand the behaviour as the GET requests in both tests are exactly the same...
    Thank you for your help,
    Yves Haemmerli

  • Strange User Interface Behaviour

    Dear all, I have a "funny" problem. Below is my code :
    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;
    class Interface extends JFrame implements ActionListener
         Processes processes_this;
         JButton Bttn_Add, Bttn_Left, Bttn_Right, Bttn_Up, Bttn_Down, Bttn_Remove, Bttn_Test;
         JLabel Label_FocusTitle, Label_Focus, Label_XTitle, Label_X, Label_YTitle, Label_Y;
         JTextArea TextArea_ComponentList;
         JMenuBar MenuBar_AllMenu;
         JMenu Menu_File, Menu_Edit;
         JMenuItem MenuItem_New, MenuItem_Open, MenuItem_Close, MenuItem_Save, MenuItem_SaveAs, MenuItem_Print, MenuItem_Exit;
         JMenuItem MenuItem_Add, MenuItem_Remove;
         JPanel Panel_Main, Panel_Format, Panel_Button, Panel_Arrow;
         JScrollPane ScrollPane_TextArea;
         SpringLayout layout = new SpringLayout();
         public Interface(Processes p)
              processes_this = p;
              processes_this.recordLog("Start Interface.Interface");
              this.initButton();
              this.initLabel();
              this.initTextArea();
              this.initMenu();
              this.initPanel();
              this.setConstraint();
              this.initialCondition();
              this.initFrame();
              processes_this.recordLog("End Interface.Interface");
         private void initButton()
              processes_this.recordLog("Start Interface.initButton");
              Bttn_Add = new JButton("ADD");
              Bttn_Add.setPreferredSize(new Dimension(125,40));
              Bttn_Add.setActionCommand(GenVar.General.ACTION_COMMAND_ADD);
              Bttn_Add.addActionListener(this);
              Bttn_Remove = new JButton("REMOVE");
              Bttn_Remove.setPreferredSize(new Dimension(125,40));
              Bttn_Remove.setActionCommand(GenVar.General.ACTION_COMMAND_REMOVE);
              Bttn_Remove.addActionListener(this);
              Bttn_Test = new JButton("TEST");
              Bttn_Test.setPreferredSize(new Dimension(125,40));
              Bttn_Test.setActionCommand(GenVar.General.ACTION_COMMAND_TEST);
              Bttn_Test.addActionListener(this);
              Bttn_Up = new JButton("U");
              Bttn_Up.setPreferredSize(new Dimension(50,80));
              Bttn_Up.setActionCommand(GenVar.General.ACTION_COMMAND_UP);
              Bttn_Up.addActionListener(this);
              Bttn_Down = new JButton("D");
              Bttn_Down.setPreferredSize(new Dimension(50,80));
              Bttn_Down.setActionCommand(GenVar.General.ACTION_COMMAND_DOWN);
              Bttn_Down.addActionListener(this);
              Bttn_Left = new JButton("L");
              Bttn_Left.setPreferredSize(new Dimension(80,50));
              Bttn_Left.setActionCommand(GenVar.General.ACTION_COMMAND_LEFT);
              Bttn_Left.addActionListener(this);
              Bttn_Right = new JButton("R");
              Bttn_Right.setPreferredSize(new Dimension(80,50));
              Bttn_Right.setActionCommand(GenVar.General.ACTION_COMMAND_RIGHT);
              Bttn_Right.addActionListener(this);
              processes_this.recordLog("End Interface.initButton");
         private void initLabel()
              processes_this.recordLog("Start Interface.initLabel");
              Label_FocusTitle = new JLabel("Focus : ");
              Label_FocusTitle.setFont(new Font("Times New Roman",Font.BOLD,16));
              Label_Focus = new JLabel("focus");
              Label_Focus.setFont(new Font("Times New Roman",Font.BOLD,16));
              Label_XTitle = new JLabel("X : ");
              Label_XTitle.setFont(new Font("Times New Roman",Font.BOLD,16));
              Label_X = new JLabel("999");
              Label_X.setFont(new Font("Times New Roman",Font.BOLD,16));
              Label_YTitle = new JLabel("Y : ");
              Label_YTitle.setFont(new Font("Times New Roman",Font.BOLD,16));
              Label_Y = new JLabel("999");
              Label_Y.setFont(new Font("Times New Roman",Font.BOLD,16));
              processes_this.recordLog("End Interface.initLabel");
         private void initTextArea()
              processes_this.recordLog("Start Interface.initTextArea");
              TextArea_ComponentList = new JTextArea("");
              TextArea_ComponentList.setEditable(false);
              ScrollPane_TextArea = new JScrollPane(TextArea_ComponentList);
              //ScrollPane_TextArea.setPreferredSize(new Dimension(168, 150));
              processes_this.recordLog("End Interface.initTextArea");
         private void initMenu()
              processes_this.recordLog("Start Interface.initMenu");
              MenuBar_AllMenu = new JMenuBar();
              MenuItem_New = new JMenuItem("New");
              MenuItem_New.setMnemonic(KeyEvent.VK_N);
              MenuItem_New.setActionCommand(GenVar.General.ACTION_COMMAND_NEW);
              MenuItem_New.addActionListener(this);
              MenuItem_Open = new JMenuItem("Open");
              MenuItem_Open.setMnemonic(KeyEvent.VK_O);
              MenuItem_Open.setActionCommand(GenVar.General.ACTION_COMMAND_OPEN);
              MenuItem_Open.addActionListener(this);
              MenuItem_Close = new JMenuItem("Close");
              MenuItem_Close.setMnemonic(KeyEvent.VK_C);
              MenuItem_Close.setActionCommand(GenVar.General.ACTION_COMMAND_CLOSE);
              MenuItem_Close.addActionListener(this);
              MenuItem_Save = new JMenuItem("Save");
              MenuItem_Save.setMnemonic(KeyEvent.VK_S);
              MenuItem_Save.setActionCommand(GenVar.General.ACTION_COMMAND_SAVE);
              MenuItem_Save.addActionListener(this);
              MenuItem_SaveAs = new JMenuItem("Save As");
              MenuItem_SaveAs.setMnemonic(KeyEvent.VK_A);
              MenuItem_SaveAs.setActionCommand(GenVar.General.ACTION_COMMAND_SAVEAS);
              MenuItem_SaveAs.addActionListener(this);
              MenuItem_Print = new JMenuItem("Test Print");
              MenuItem_Print.setMnemonic(KeyEvent.VK_P);
              MenuItem_Print.setActionCommand(GenVar.General.ACTION_COMMAND_PRINT);
              MenuItem_Print.addActionListener(this);
              MenuItem_Exit = new JMenuItem("Exit");
              MenuItem_Exit.setMnemonic(KeyEvent.VK_X);
              MenuItem_Exit.setActionCommand(GenVar.General.ACTION_COMMAND_EXIT);
              MenuItem_Exit.addActionListener(this);
              MenuItem_Add = new JMenuItem("Add");
              MenuItem_Add.setMnemonic(KeyEvent.VK_A);
              MenuItem_Add.setActionCommand(GenVar.General.ACTION_COMMAND_ADD);
              MenuItem_Add.addActionListener(this);
              MenuItem_Remove = new JMenuItem("Remove");
              MenuItem_Remove.setMnemonic(KeyEvent.VK_R);
              MenuItem_Remove.setActionCommand(GenVar.General.ACTION_COMMAND_REMOVE);
              MenuItem_Remove.addActionListener(this);
              Menu_File = new JMenu("File");
              Menu_File.setMnemonic(KeyEvent.VK_F);
              Menu_File.add(MenuItem_New);
              Menu_File.add(MenuItem_Open);
              Menu_File.addSeparator();
              Menu_File.add(MenuItem_Save);
              Menu_File.add(MenuItem_SaveAs);
              Menu_File.addSeparator();
              Menu_File.add(MenuItem_Print);
              Menu_File.add(MenuItem_Exit);
              Menu_Edit = new JMenu("Edit");
              Menu_Edit.setMnemonic(KeyEvent.VK_E);
              Menu_Edit.add(MenuItem_Add);
              Menu_Edit.add(MenuItem_Remove);
              MenuBar_AllMenu.add(Menu_File);
              MenuBar_AllMenu.add(Menu_Edit);
              processes_this.recordLog("End Interface.initMenu");
         private void initPanel()
              processes_this.recordLog("Start Interface.initPanel");
              Panel_Button = new JPanel(layout);
              Panel_Button.setPreferredSize(new Dimension(500,100));
              Panel_Button.setBackground(Color.RED);
              Panel_Button.add(Bttn_Add);
              Panel_Button.add(Bttn_Remove);
              Panel_Button.add(Bttn_Test);
              Panel_Button.add(Label_FocusTitle);
              Panel_Button.add(Label_Focus);
              Panel_Button.add(Label_XTitle);
              Panel_Button.add(Label_X);
              Panel_Button.add(Label_YTitle);
              Panel_Button.add(Label_Y);
              Panel_Arrow = new JPanel(layout);
              Panel_Arrow.setPreferredSize(new Dimension(300,250));
              Panel_Arrow.setBackground(Color.BLUE);
              Panel_Arrow.add(Bttn_Up);
              Panel_Arrow.add(Bttn_Down);
              Panel_Arrow.add(Bttn_Left);
              Panel_Arrow.add(Bttn_Right);
              Panel_Format = new JPanel(layout);
              Panel_Format.setPreferredSize(new Dimension(500,550));
              Panel_Main = new JPanel(layout);
              Panel_Main.setPreferredSize(new Dimension(800,600));
              Panel_Main.setBackground(Color.GREEN);
              Panel_Main.add(Panel_Button);
              Panel_Main.add(Panel_Arrow);
              Panel_Main.add(Panel_Format);
              processes_this.recordLog("End Interface.initPanel");
         private void setConstraint()
              processes_this.recordLog("Start Interface.setConstraint");
              layout.putConstraint(SpringLayout.WEST, Bttn_Up, 125, SpringLayout.WEST, Panel_Arrow);
              layout.putConstraint(SpringLayout.NORTH, Bttn_Up, 15, SpringLayout.NORTH, Panel_Arrow);
              layout.putConstraint(SpringLayout.WEST, Bttn_Down, 125, SpringLayout.WEST, Panel_Arrow);
              layout.putConstraint(SpringLayout.NORTH, Bttn_Down, 63, SpringLayout.SOUTH, Bttn_Up);
              layout.putConstraint(SpringLayout.WEST, Bttn_Left, 35, SpringLayout.WEST, Panel_Arrow);
              layout.putConstraint(SpringLayout.NORTH, Bttn_Left, 100, SpringLayout.NORTH, Panel_Arrow);
              layout.putConstraint(SpringLayout.WEST, Bttn_Right, 70, SpringLayout.EAST, Bttn_Left);
              layout.putConstraint(SpringLayout.NORTH, Bttn_Right, 100, SpringLayout.NORTH, Panel_Arrow);
              layout.putConstraint(SpringLayout.WEST, Bttn_Add, 40, SpringLayout.WEST, Panel_Button);
              layout.putConstraint(SpringLayout.NORTH, Bttn_Add, 15, SpringLayout.NORTH, Panel_Button);
              layout.putConstraint(SpringLayout.WEST, Bttn_Test, 10, SpringLayout.EAST, Bttn_Add);
              layout.putConstraint(SpringLayout.NORTH, Bttn_Test, 15, SpringLayout.NORTH, Panel_Button);
              layout.putConstraint(SpringLayout.WEST, Bttn_Remove, 10, SpringLayout.EAST, Bttn_Test);
              layout.putConstraint(SpringLayout.NORTH, Bttn_Remove, 15, SpringLayout.NORTH, Panel_Button);
              layout.putConstraint(SpringLayout.WEST, Label_FocusTitle, 10, SpringLayout.WEST, Panel_Button);
              layout.putConstraint(SpringLayout.SOUTH, Label_FocusTitle, -5, SpringLayout.SOUTH, Panel_Button);
              layout.putConstraint(SpringLayout.WEST, Label_Focus, 5, SpringLayout.EAST, Label_FocusTitle);
              layout.putConstraint(SpringLayout.SOUTH, Label_Focus, -5, SpringLayout.SOUTH, Panel_Button);
              layout.putConstraint(SpringLayout.EAST, Label_Y, -10, SpringLayout.EAST, Panel_Button);
              layout.putConstraint(SpringLayout.SOUTH, Label_Y, -5, SpringLayout.SOUTH, Panel_Button);
              layout.putConstraint(SpringLayout.EAST, Label_YTitle, -5, SpringLayout.WEST, Label_Y);
              layout.putConstraint(SpringLayout.SOUTH, Label_YTitle, -5, SpringLayout.SOUTH, Panel_Button);
              layout.putConstraint(SpringLayout.EAST, Label_X, -30, SpringLayout.WEST, Label_YTitle);
              layout.putConstraint(SpringLayout.SOUTH, Label_X, -5, SpringLayout.SOUTH, Panel_Button);
              layout.putConstraint(SpringLayout.EAST, Label_XTitle, -5, SpringLayout.WEST, Label_X);
              layout.putConstraint(SpringLayout.SOUTH, Label_XTitle, -5, SpringLayout.SOUTH, Panel_Button);
              layout.putConstraint(SpringLayout.WEST, Panel_Button, 0, SpringLayout.WEST, Panel_Main);
              layout.putConstraint(SpringLayout.NORTH, Panel_Button, 0, SpringLayout.NORTH, Panel_Main);
              layout.putConstraint(SpringLayout.EAST, Panel_Arrow, 0, SpringLayout.EAST, Panel_Main);
              layout.putConstraint(SpringLayout.SOUTH, Panel_Arrow, 0, SpringLayout.SOUTH, Panel_Main);
              layout.putConstraint(SpringLayout.WEST, Panel_Format, 0, SpringLayout.WEST, Panel_Main);
              layout.putConstraint(SpringLayout.SOUTH, Panel_Format, 0, SpringLayout.SOUTH, Panel_Main);
              processes_this.recordLog("End Interface.setConstraint");
         private void initFrame()
              processes_this.recordLog("Start LoginScreen.initFrame");
              this.setTitle("TVP1500 Form Creator");
              this.setIconImage(new ImageIcon("Icon.JPG").getImage());
              this.setName(GenVar.General.FRAME_NAME_MAIN);
              this.getContentPane().add(Panel_Main, BorderLayout.CENTER);
              this.setJMenuBar(MenuBar_AllMenu);
              this.setResizable(false);
              this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
              this.pack();
              Dimension Dimension_Temp = this.getSize();
              this.setLocation((processes_this.getScreenWidth()-Dimension_Temp.width)/2,(processes_this.getScreenHeight()-Dimension_Temp.height)/2);
              this.setVisible(true);
              processes_this.recordLog("End LoginScreen.initFrame");
         public void initialCondition()
              processes_this.recordLog("Start LoginScreen.initialCondition");
              Label_Focus.setText("");
              Label_X.setText("   ");
              Label_Y.setText("   ");
              Bttn_Add.setEnabled(false);
              Bttn_Test.setEnabled(false);
              Bttn_Remove.setEnabled(false);
              Bttn_Up.setEnabled(false);
              Bttn_Down.setEnabled(false);
              Bttn_Left.setEnabled(false);
              Bttn_Right.setEnabled(false);     
              processes_this.recordLog("End LoginScreen.initialCondition");
         public void actionPerformed(ActionEvent e)
              processes_this.recordLog("Start Interface.actionPerformed");
              if(e.getActionCommand().equals(GenVar.General.ACTION_COMMAND_NEW))
                   processes_this.createNewFile();
              processes_this.recordLog("End Interface.actionPerformed");
         public void makeItGone()
              processes_this.recordLog("Start Interface.makeItGone");
              this.setVisible(false);
              processes_this.recordLog("End Interface.makeItGone");     
         public void makeItAppear()
              processes_this.recordLog("Start Interface.makeItAppear");
              this.setVisible(true);
              processes_this.recordLog("End Interface.makeItAppear");     
         public void enableMe()
              processes_this.recordLog("Start Interface.enableMe");
              this.setEnabled(true);
              processes_this.recordLog("End Interface.enableMe");
         public void disableMe()
              processes_this.recordLog("Start Interface.disableMe");
              this.setEnabled(false);
              processes_this.recordLog("End Interface.disableMe");
         public void addFormToPanel(JPanel p)
              processes_this.recordLog("Start Interface.addFormToPanel");
              Panel_Format.add(p);
              layout.putConstraint(SpringLayout.WEST, p, 50, SpringLayout.WEST, Panel_Format);
              layout.putConstraint(SpringLayout.NORTH, p, 100, SpringLayout.NORTH, Panel_Format);
              Panel_Format.revalidate();
              this.repaint();
              processes_this.recordLog("End Interface.addFormToPanel");
    }At the initial calling, the display seems ok. But when I call addFormToPanel(JPanel p), in sudden my JFrame only show the Panel_Arrow, started from position (0,0). Does anyone can help me with this issue ? Thank you very much.....

    UPDATE...
    I have been in safe mode for a while... When I was login into safe mode the I suffered one of those graphical glitches... I took a photo. After that, when it finished to load the screen went black and nothing more happened... The computer was working... but not graphical interface at all... just a black screen.
    Then, I decided to force to turn off.... and try again to login into safe mode. That time worked well and normal.
    However, while I was in safe mode the mac behaved strange graphically, as you can see in this video. I really do not know if that is a normal behaviour in safe mode. Finally, while I was finishing the email to reply the apple support a heavy graphical glitch happened after the screen went black, as you can see in these photos ( 1, 2 and 3). I decided to turn of the computer and back to the normal mode.
    I have collected another console log, it can be seen in the previous link to the error logs or in this link. The glitch occurred around 14.10 h today.
    Thanks in advance for the help and your time!!! it is really appreciated!!!!

  • Strange card reader behaviour

    Pls help!
    I have notebook with vista business.
    In normal situation once I plug my card reader the lamp on it is lit for 5-6 seconds, after the lamp is turned off I can work without problems.
    but with this vista once i plug my card reader the lamp is lit on but never gets turned off and when i try to use card reader I cannot access it because alegedly vista grabs control over it and refuses to release it.
    Pls help. which windows service might grabs card reader for infinity?

    I think I have found the reason of the "strange behaviour".
    Here's the story (I use the name TAB1 for a table in this example).
    I've created TAB1 using external tables to import txt-saved data in the DB.
    After this step I've noticed that if you remove the txt file with the data from the working directory, the data disappear from the DB.
    So I've created a copy of TAB1 using ODM interface that has automatically named the newly craeted table (something like: TAB14530959847, with many digits after the original name).
    I've erased TAB1.
    At that point my populated table was on the DB, but I wasn't happy with the new name.
    So I've created another copy of TAB14530959847 and called it TAB1 (I guess there are better ways to rename a table, but I am a total beginner and unaware about it).
    This is what creates the strange behaviour.
    Now I have the table with the name I want, but I am not able to see it from SQL plus, that says that the table doesn't exist.
    I've made experiments: if I rename TAB14530959847 into whatever I want (except for the original name TAB1) everything goes fine.
    I bet oracle keep a trace somewhere of the original name and relates it to what is in fact a dropped table (TAB1) and it's not supposed to be there anymore.
    well. that's it.
    hope this can be useful for someone who's experimented this problem.
    cheers
    S.

  • Strange web traffic behaviour for previous week

    Hi,
    I have been experiencing strange web behaviour with my infinity 2 connection for approximately the last week. I say "web" because the connection speed for other applications is fairly rapid still, but general web browsing is very laggy.
    I'm using mainly Apple kit. Time capsule plugged into infinity box. Two iPhones, two Macbook Airs and an ipad. Using a mixture of wired and wireless connections. All show the same issue for websites, where as pages will either take a while to load or half load and not respond until tried upon a second attempt.
    Looking at network traffic it would look like what happens is occasionally some HTTP requests hang and eventually time out. I've tried VPN'ing out then web browsing via the VPN and it doesn't experience the same issue.
    Anyone have any ideas or experienced similar? Sounds like some kind of BT traffic shaping or transparent proxy perhaps? 
    Thanks in advance...

    I’ve done some analysis to try find out what is happening and come to conclusion there is definitely some packet loss going on which appears to be the cause of the problem. I’m not sure if this is the correct forum for this level of technicality but hopefully someone at BT will see this and act on it.
    In the instances where the request fails, it is almost certainly because the TCP three way handshake does not complete. Specifically this is final ACK packet back from the client to the server is lost en route but strangely no ICMP error messages which you’d expect to see.
    In the example log below a request to an asset on the BBC news website failed. Somewhere within BT, the final ACK to establish the connection is being lost; so the connection is in a kind of limbo state where it is trying to ask for a particular page asset but the remote server still thinks there’s an ACK packet to come. This is what is causing the actual ‘hang’ within the browser since it is waiting for data to be returned which never is.
    21:19:27.626789 IP 10.0.1.2.56024 > 109.144.113.190.http: Flags [S], seq 303285671, win 65535, options [mss 1460,nop,wscale 4,nop,nop,TS val 197730955 ecr 0,sackOK,eol], length 0
    21:19:27.639592 IP 109.144.113.190.http > 10.0.1.2.56024: Flags [S.], seq 2613461067, ack 303285672, win 14480, options [mss 1400,sackOK,TS val 236085456 ecr 197730955,nop,wscale 1], length 0
    21:19:27.639667 IP 10.0.1.2.56024 > 109.144.113.190.http: Flags [.], ack 1, win 8241, options [nop,nop,TS val 197730967 ecr 236085456], length 0
    21:19:27.641567 IP 10.0.1.2.56024 > 109.144.113.190.http: Flags [P.], seq 1:368, ack 1, win 8241, options [nop,nop,TS val 197730968 ecr 236085456], length 367
    21:19:27.718538 IP 109.144.113.190.http > 10.0.1.2.56024: Flags [S.], seq 2613461067, ack 303285672, win 14480, options [mss 1400,sackOK,TS val 236085535 ecr 197730955,nop,wscale 1], length 0
    21:19:27.718617 IP 10.0.1.2.56024 > 109.144.113.190.http: Flags [.], ack 1, win 8241, options [nop,nop,TS val 197731040 ecr 236085535], length 0
    21:19:27.968834 IP 10.0.1.2.56024 > 109.144.113.190.http: Flags [P.], seq 1:368, ack 1, win 8241, options [nop,nop,TS val 197731286 ecr 236085535], length 367
    21:19:28.271157 IP 10.0.1.2.56024 > 109.144.113.190.http: Flags [P.], seq 1:368, ack 1, win 8241, options [nop,nop,TS val 197731588 ecr 236085535], length 367
    21:19:28.673944 IP 10.0.1.2.56024 > 109.144.113.190.http: Flags [P.], seq 1:368, ack 1, win 8241, options [nop,nop,TS val 197731990 ecr 236085535], length 367
    So with this in mind, I’m open to as whether it is just web. It’s likely that it could be other protocols as well. It could be that web is more susceptible due to the number of separate connections that need to happen for each page view.

  • Strange garbage collector behaviour

    Hello,
    I am seeing quite a strange behaviour from the garbage collector in one of our applications.
    The application is a standalone Java app, it receives requests over a TCP socket and responds to them. It is basically a kind of a cache before the database. There is a constant request flow of 10-100 requests per second. Average response time is below 50ms. It is running on a multiprocessor Sun machine, JDK 1.4.1_02.
    The problem arises when the app has been running for a while. Depending on the allowed maximum memory size - with 256mb after about half a day, with 512mb after about a day, the garbage collector seems to be running most of the time. We turned on GC logging and from the log I can see that initially for a long period only the DefNew collector is used. The GC times are ~0.05sec then. Then after some time old generation collections start taking place. These collections take 3-4 seconds. The old gen collections then become more frequent until all that is going on, is one collection after another. About 3-4seconds for the collection, then after another 3-4 seconds the same thing again.
    Can anyone please help in understanding what can cause this kind of behaviour? I am quite sure that the app is stable in a sense that it doesn't start to eat up extra memory at some point.
    Any help greatly appreciated,
    erik
    Here are some excerpts from the GC log:
    After startup:
    100.264: [GC 100.264: [DefNew: 83488K->1290K(84800K), 0.0487560 secs] 87278K->5080K(259584K), 0.0490613 secs]
    107.439: [GC 107.439: [DefNew: 83530K->1299K(84800K), 0.0526107 secs] 87320K->5178K(259584K), 0.0528313 secs]
    111.554: [GC 111.554: [DefNew: 83539K->1207K(84800K), 0.0539021 secs] 87418K->5230K(259584K), 0.0541348 secs]
    119.724: [GC 119.724: [DefNew: 83447K->1359K(84800K), 0.0561691 secs] 87470K->5382K(259584K), 0.0564463 secs]
    125.576: [GC 125.576: [DefNew: 83599K->1366K(84800K), 0.0622342 secs] 87622K->5504K(259584K), 0.0624880 secs]
    130.987: [GC 130.987: [DefNew: 83606K->1331K(84800K), 0.0586104 secs] 87744K->5607K(259584K), 0.0588732 secs]
    138.695: [GC 138.695: [DefNew: 83571K->1296K(84800K), 0.0588720 secs] 87847K->5697K(259584K), 0.0591136 secs]
    144.413: [GC 144.413: [DefNew: 83536K->1246K(84800K), 0.0607789 secs] 87937K->5790K(259584K), 0.0612128 secs]
    150.661: [GC 150.661: [DefNew: 83486K->1279K(84800K), 0.0486299 secs] 88030K->5823K(259584K), 0.0488933 secs]
    157.186: [GC 157.187: [DefNew: 83519K->1410K(84800K), 0.0545036 secs] 88063K->5954K(259584K), 0.0547557 secs]
    162.937: [GC 162.937: [DefNew: 83650K->1230K(84800K), 0.0590144 secs] 88194K->5998K(259584K), 0.0592747 secs]
    171.555: [GC 171.555: [DefNew: 83470K->1334K(84800K), 0.0554568 secs] 88238K->6101K(259584K), 0.0557090 secs]
    175.416: [GC 175.416: [DefNew: 83574K->1315K(84800K), 0.0584964 secs] 88341K->6178K(259584K), 0.0587433 secs]
    182.616: [GC 182.616: [DefNew: 83555K->1307K(84800K), 0.0709417 secs] 88418K->6234K(259584K), 0.0712034 secs]
    And then in the end:
    13177.7: [GC 13177.7: [DefNew: 82240K->82240K(84800K), 0.0000487 secs]13177.7: [Tenured: 95861K->96094K(174784K), 3.7160279 secs] 178101K->96094K(259584K), 3.7165109 secs]
    13183.9: [GC 13183.9: [DefNew: 82240K->82240K(84800K), 0.0000459 secs]13183.9: [Tenured: 96094K->96268K(174784K), 3.6973634 secs] 178334K->96268K(259584K), 3.6978356 secs]
    13193: [GC 13193: [DefNew: 82240K->82240K(84800K), 0.0000534 secs]13193: [Tenured: 96268K->95923K(174784K), 4.6233189 secs] 178508K->95923K(259584K), 4.6237995 secs]
    13201.2: [GC 13201.2: [DefNew: 82240K->82240K(84800K), 0.0000531 secs]13201.2: [Tenured: 95923K->96100K(174784K), 3.7120306 secs] 178163K->96100K(259584K), 3.7125165 secs]
    13208.6: [GC 13208.6: [DefNew: 82240K->82240K(84800K), 0.0000502 secs]13208.6: [Tenured: 96100K->96268K(174784K), 3.6950267 secs] 178340K->96268K(259584K), 3.6955072 secs]
    13218.1: [GC 13218.1: [DefNew: 82240K->82240K(84800K), 0.0000582 secs]13218.1: [Tenured: 96268K->96442K(174784K), 3.7476890 secs] 178508K->96442K(259584K), 3.7481875 secs]
    13225.8: [GC 13225.8: [DefNew: 82240K->82240K(84800K), 0.0002743 secs]13225.8: [Tenured: 96442K->96200K(174784K), 4.9092106 secs] 178682K->96200K(259584K), 4.9103437 secs]
    13234.4: [GC 13234.4: [DefNew: 82240K->82240K(84800K), 0.0000541 secs]13234.4: [Tenured: 96200K->96409K(174784K), 3.7423712 secs] 178440K->96409K(259584K), 3.7428506 secs]
    13240.6: [GC 13240.6: [DefNew: 82240K->82240K(84800K), 0.0000528 secs]13240.6: [Tenured: 96409K->96633K(174784K), 3.6245501 secs] 178649K->96633K(259584K), 3.6250124 secs]
    13273.7: [GC 13273.7: [DefNew: 82240K->82240K(84800K), 0.0000651 secs]13273.7: [Tenured: 96633K->96799K(174784K), 3.7021988 secs] 178873K->96799K(259584K), 3.7027242 secs]
    13283: [GC 13283: [DefNew: 82240K->82240K(84800K), 0.0000510 secs]13283: [Tenured: 96799K->96620K(174784K), 4.9944806 secs] 179039K->96620K(259584K), 4.9949444 secs]
    I can provide the whole log if neccessary.

    The most likely cause of this problem is a memory leak in your application. As the memory reaches close to its limit the GC has to run for longer, more often to get free memory.
    The runtime before going slow being proportional to the memory size.
    Can you have the program log the System.freeMemory() and System.totalMemory()

  • Very strange, Entry Processor block the entire coherence node

    I have a client node(storage= false) client1 which continues do get from cache1, the code is below:
    for(int i=0;i<10000000;i++){
                System.out.println("get:"+ cache1.get(i));
    and have another client node(storage= false) client2 which invoke a Entry Processor. this Entry Processor is work on cache2(not cache1)
    cache2.invoke(keys,new MyEntryProcessor());
    the MyEntryProcessor code is as below:
    public Object process(Entry entry) {
            for(int i=0;i< 1000000;i++){
                entry.getKey();
                entry.getValue();
                System.out.println(i);
            return null;
    when client2 begin run,  client1 will be blocked, until client2's Entry Processor is finished.
    who can tell me why. it's very strange, because client1 and client2 are work on two different cache. and it's only do get

    If these two caches belong to same cache service, then their requests are handled by the same service thread.   Coherence only use single service thread per service per node.    So if the get() for cache1 and the entry processor for cache2 go to the same node, you will see that behavior if cache1 and cache2 belong to same cache service.
    Either turn on thread pool (if you want to use same cache service( or use different cache service.

  • Strange screen/video behaviour Satellite Pro P100-109

    I have strange problems with my Sattelite Pro (P100-109 model pspa3e 00n009du). I have the impression the on board video card is letting me down, so if somebody has a solution then please help!
    Yesterday, while working properly since I bought the machine, I had some strange video behaviour. Black arround icon's windows not properly updating etc.
    After a reboot of the system these problems seemed resolved but this lasted only for a view minutes.
    After a while I got a blue screen (BCCode: ea BCP1... BCP4:00000001 SP: 2.0 ) searching the Internet learned that his had to do with the video driver.
    Symptoms of the display:
    - Vertical dotted lines shown on the toshiba bios screen (all kinds of colors)
    - Windows loading show some vertical lines as well
    - After loading clickable items appear black (window titles - No buttons shown/rendered)
    - Display turns black every 4 seconds
    - System responds very slow but sometimes it seems that it works normally
    - mouse dissappears
    - After some time only a black screen is shown, system does not respond anymore.
    - In windows Safe mode (so not using the nvidia drivers) the display seems to work normally
    Did the following trying to resolve my issue unsuccesfully:
    - I uninstalled/removed the nvidia drivers and installed the latest ones from the toshiba site.
    - Removed original drivers and installed drivers from Guru3D site (also used the Driverutility from the same site).
    - I uninstalled/removed the nvidia drivers and installed the original ones
    - Upgraded to SP3
    Uninstalling the driver (in safe mode) and thus using only a generic driver seems to work.
    Does anybody know how this could be resolved or are these signs that the nVidia GeForce Go 7900 has been roasted.

    Hi
    Long story. short answer....
    It could be really possible that your GPU chips malfunctions.
    I came to this conclusion because the notebook symptoms dont occur if the graphic card driver is not installed.
    If the graphic card driver would be installed then the graphic card would run with best performance and possibly the graphic issues would appear again.
    I think you cannot do anything what could solve this issue apart from contacting the ASP in your country and asking for the help.
    Good luck

  • Strange headphone volume behaviour

    G'day everyone.
    Yesterday I received a brand new iPhone 4 and today, after syncing all my music, I noticed a strange problem when listening through any earphones. When the music is playing at low volume it is very muffled, though when the volume is turned up close to full, the audio seems to jump into a state of clarity where it suddenly sounds normal.
    I was on the phone to apple about this problem and whilst I was on hold I decided to plug in my headphones to see if they worked for calls... they did, so I decided to test further and see if my music was working... it was, but as soon as I hung up from the call and tried the music again it went back to being muffled until the volume was turned to full. Apple suggested a hard reset which did not help, any other ideas?
    Cheers.

    I think I have found the reason of the "strange behaviour".
    Here's the story (I use the name TAB1 for a table in this example).
    I've created TAB1 using external tables to import txt-saved data in the DB.
    After this step I've noticed that if you remove the txt file with the data from the working directory, the data disappear from the DB.
    So I've created a copy of TAB1 using ODM interface that has automatically named the newly craeted table (something like: TAB14530959847, with many digits after the original name).
    I've erased TAB1.
    At that point my populated table was on the DB, but I wasn't happy with the new name.
    So I've created another copy of TAB14530959847 and called it TAB1 (I guess there are better ways to rename a table, but I am a total beginner and unaware about it).
    This is what creates the strange behaviour.
    Now I have the table with the name I want, but I am not able to see it from SQL plus, that says that the table doesn't exist.
    I've made experiments: if I rename TAB14530959847 into whatever I want (except for the original name TAB1) everything goes fine.
    I bet oracle keep a trace somewhere of the original name and relates it to what is in fact a dropped table (TAB1) and it's not supposed to be there anymore.
    well. that's it.
    hope this can be useful for someone who's experimented this problem.
    cheers
    S.

  • Very strange boot/device behaviour- please help!

    hello!
    i was quite happy with my macbook pro, when it one day did not boot anymore. i just saw the black screen and no startup sound was heard. i tried several times to restart, but no result. i gave up for some hours and when i came back it worked again.
    i thought it might have been the humidity as sunnier days came their way and my macbook worked without any problem.
    however, one month later i´m confronted again with this boot issue. so after the mbp has been turned off, i have to wait 30 minutes in order to be able to restart. if not, it gets stuck with the black screen.
    i went trough the troubleshooting tips (SMC reset, PRam reset) and even made an archive and install. unfortunately without any result.
    to make things worse my audio stopped to work also. first it did not even show up the devices -" no input/output devices found", after the archive and install the devices were found, but still no sound (except the startupsound)...
    ...i really do not have any clue what might be the problem, but as i am currently far from home and far from any apple support center, i would very much appreciate every hint or solution.
    tnx
    dawandeh
    macbook pro 2,33 GHz Mac OS X (10.4.9)

    hello again!
    it's very strange indeed. my macbook was working without any problems again for 2 days. then i was playing music on itunes when the screen went black(please restart), i could hear some scratchy noises before. again i could not restart. after 30 attempts the computer booted and everything worked except the audio, it said "no output devices found". i noticed that after some hours of rest my computer returns to full funcionality. as i said, i have no means to bring my computer to an apple store. maybe someone can give me an indication of what might be wrong. here is the panic.log:
    panic(cpu 0 caller 0x00136744): stack_alloc: kernelmemoryallocate
    Backtrace, Format - Frame : Return Address (4 potential args on stack)
    0x2cb63eb8 : 0x128d08 (0x3c9afc 0x2cb63edc 0x131de5 0x0)
    0x2cb63ef8 : 0x136744 (0x3ca48c 0x2cb63f2c 0x4000 0x7fff)
    0x2cb63f38 : 0x13b9a8 (0x491d8b0 0x1 0x4af85c 0x4b8070)
    0x2cb63f68 : 0x13b9fb (0x13d8d5 0x0 0x5e 0x2cb63f8c)
    0x2cb63f98 : 0x13d0b1 (0x13d8d5 0x0 0x5e 0x2cb63fbc)
    0x2cb63fc8 : 0x19a77c (0x0 0x0 0x19d0b5 0x491e2dc) Backtrace terminated-invalid frame pointer 0x0
    Kernel version:
    Darwin Kernel Version 8.8.2: Thu Sep 28 20:43:26 PDT 2006; root:xnu-792.14.14.obj~1/RELEASE_I386
    Model: MacBookPro2,2, BootROM MBP22.00A5.B01, 2 processors, Intel Core 2 Duo, 2.33 GHz, 2 GB
    Graphics: ATI Radeon X1600, ATY,RadeonX1600, PCIe, 256 MB
    Memory Module: BANK 0/DIMM0, 1 GB, DDR2 SDRAM, 667 MHz
    Memory Module: BANK 1/DIMM1, 1 GB, DDR2 SDRAM, 667 MHz
    AirPort: AirPort Extreme, 1.0.27p3
    Bluetooth: Version 1.7.11f14, 2 service, 0 devices, 1 incoming serial ports
    Serial ATA Device: Hitachi HTS541616J9SA00, 149.05 GB
    Parallel ATA Device: MATSHITADVD-R UJ-857D
    USB Device: Built-in iSight, Micron, Up to 480 Mb/sec, 500 mA
    USB Device: Apple Internal Keyboard / Trackpad, Apple Computer, Up to 12 Mb/sec, 500 mA
    USB Device: Bluetooth HCI, Up to 12 Mb/sec, 500 mA
    USB Device: IR Receiver, Apple Computer, Inc., Up to 12 Mb/sec, 500 mA
    tnx
    dawandeh

  • Strange disc utility behaviour with windows partition

    Hi,
    I have created a 30 gig partition for windows XP (FAT32) on my macbook, which all works fine, but back on the mac volume, I tried to make an additional 10 gig partition for which I planned to save all my audio work in Logic to. It appeared to create it fine, but the volume scheme was totally messed up in Disc Utility; i.e. the windows portion took up practically the whole scheme, there was 500 MB "unused" in gray, "Macintosh HD" had a tiny portion, which overlapped the blue used "system" part (also overlapped by the unused bit). I couldn't seem to fix this problem, yet doing command-i on all volumes gave the right numbers and it added up.
    Has anyone else seen any strangeness? All I can think of is that bootcamp isn't too happy with additional partitions, so disk utility goes a bit mad so to speak! I know that bootcamp will only create a windows partition on a single un-partitioned volume. Essentially, I just wondered if I could make more partitions after installing a windows partition.
    cheers,
    David

    Hi Philip
    Before you get too alarmed I think what Zeny described is, potentially, a totally different scenario to yours and not entirely applicable. From your description it doesn't sound like your PowerBook currently has any of the symptoms commonly associated with hard drive failure.
    That said it is possible that there may be a bad sector on the drive, which an erase whilst zeroing all data will resolve. At the same time it may also just be a software glitch.
    Either way, it is worth giving the PB and hard drive a full check with the likes of DiskWarrior, Drive Genius, Apple Hardware Test, etc.
    2.0GHz MacBook, 15" 1.25GHz/12" 1GHz PBs, 2xPPC Mac minis, 12" iBook G4,   Mac OS X (10.4.8)   Cube, 2xTAMs, iPod 4G & nano 2G, 1G & 2G iPs, AEBS, AX

  • [SOLVED] Strange Openbox menu behaviour

    Hi,
    so, I've searched the forums in order to find a solution for my problem, but not found anythihg that works for me. So, problem is that my openbox menu won't execute any commands that I add to ~/.config/openbox/menu.xml file. After editing that file, I run
    openbox --reconfigure
    command (no any error messages), but again, it simply won't execute the command that I've written. I have also changed permissions, so that I have read/write access. But, strange is that if I delete menus in menu.xml that I don't need, save those changes, and run reconfigure command, those menus are not any more in openbox menu, just as it should be.
    It seems that only commands that I want to execute will not work. I' ve also installed obmenu and tried editing stuff there, but again the same problem-deleting menus works fine, but executing commands not. It is obviously that problem is not in obmenu, but in menu.xml file or somewhere else, but I don't know
    where.
    So, any ideas? Did someone experienced the same problem and found a solution? All ideas are welcome
    Last edited by brunux (2010-05-09 16:32:54)

    In my menu.xml all the programs are surrounded by <command></command> tags instead of  <execute></execute>tags.
    I've tried with your suggestion, but it doesn't work. For example, running firefox works fine with <command></command> tags, but it is the default
    part of the code, where I didn't change anything.
    <item label="Firefox">
    <action name="Execute">
    <command>firefox</command>
    <startupnotify>
    <enabled>yes</enabled>
    <wmclass>Firefox</wmclass>
    </startupnotify>
    </action>
    </item>

  • Strange User Account behaviour at Log In - not solved re duplicate thread

    This morning I cold booted my laptop and strangely after signing in it declared that it was "Preparing Windows." I was then taken to a desktop with empty Documents etc. folders. Panicking I went to the User Accounts and found all my folders and data intact but not accessible through the "account" I had been forced to log in to. Licensed software that was not installed as multiple user wouldn't show as licensed so I must assume that some sort of default new profile had been created. However, in User Accounts there didn't seem to be anything new. 
    In addition to my account and that of my wife there were three other folders that I am sure have always been there. (1) Default (with user empty subfolders) (2) An alphanumeric (temp?) folder ... empty except for Appdata / Local / Temp ... itself empty (3) UpdatusUser - used by Nvidia to update the graphics driver (with user empty subfolders) (4) Public - usual subfolders. 
    I solved the problem by logging out and logging back in with my usual login credentials. (Switching user didn't work).
    What happened please and how can I prevent it happening again?

    This morning I cold booted my laptop and strangely after signing in it declared that it was "Preparing Windows." I was then taken to a desktop with empty Documents etc. folders. Panicking I went to the User Accounts and found all my folders and data intact but not accessible through the "account" I had been forced to log in to. Licensed software that was not installed as multiple user wouldn't show as licensed so I must assume that some sort of default new profile had been created. However, in User Accounts there didn't seem to be anything new. 
    In addition to my account and that of my wife there were three other folders that I am sure have always been there. (1) Default (with user empty subfolders) (2) An alphanumeric (temp?) folder ... empty except for Appdata / Local / Temp ... itself empty (3) UpdatusUser - used by Nvidia to update the graphics driver (with user empty subfolders) (4) Public - usual subfolders. 
    I solved the problem by logging out and logging back in with my usual login credentials. (Switching user didn't work).
    What happened please and how can I prevent it happening again?

  • Strange next_page parameter behaviour after updating to jdeveloper 10.1.3.2

    Hi,
    A while back I created a multipage portlet which links to pages using links with the next_page parameter. Until recently I had used the value for next_page as htdocs/portletname/first.jsp, htdocs/portletname/second.jsp, etc. This worked fine.
    Now this week after redeploying an old multipage portlet built (same code, same environment) with the newer version of jdeveloper (10.1.3.2) these links with next_page stopped working. After investigation for a while I noticed that I now had to add an / to the beginning of the next_page parameter. So now the parameters values have to be like /htdocs/portletname/first.jsp, /htdocs/portletname/second.jsp, etc to work.
    Could someone explain what is the cause for this behaviour?

    Hi Didier,
    I did some more experimenting and I think the problem is somewhere in skins.
    I downloaded "mycompany" and "limerone" skin from WebCenter page.
    Now the problem appears only if I use mycompany or limerone skin and only with firefox2.0.
    In JDeveloper visual editor after deleting oracle-desktop-10_1_3_X_0-en-ie-6-windows-s.css problem is solved and also with IE I have no problem. Also no problem if I use "oracle" skin with firefox2.0.
    please try it (new skins + FF) and you will see...
    thanks,
    Branislav

  • Strange check box behaviour on Linux

    Hi,
    I have a forms module (10g) that has a database block with a non-database checkbox. This checkbox has the following properties:
    -Value when checked: 1
    -Value when unchecked: 0
    -Check box mapping to other values: Unchecked
    -Initial value: 0
    On 10g iDS (Win2k), when the query is executed on that block, the checkbox is unchecked for all records, which is my expected behaviour.
    Running the same module on 10g ias server (Linux) against the same database shows all checkboxes checked!!
    I can bypass this by coding a post-query-trigger and setting the value to 0, but I would like to know if someone knows anything about that.
    Thanks in advance
    Gerald

    Thanks but didn't quite work.
    This is a Seam application so I have a ClientOfficeList class which looks like this.
    private static final String EJBQL = "select clientOffice from ClientOffice clientOffice";
    public ClientOfficeList() {
              clientOffice.setClientGroup(new ClientGroup());
              setEjbql(EJBQL);
              setRestrictionExpressionStrings(Arrays.asList(RESTRICTIONS));
              setMaxResults(25);
         } then the ClientOffice entity bean looks like this.
    I wasn't able to introduce a boolean property in the entity bean since it doesnt have a corresponding database column mapping
         public void setClientOffice(String clientOffice)
              this.clientOffice = clientOffice;
         @Column(name = "CLIENT_OFFICE_STATUS", nullable = false, length = 1)
         @NotNull
         public char getClientOfficeStatus()
              return this.clientOfficeStatus;
         }The xhtml looks like this
    <h:column>
                <f:facet name="header">
                    <ui:include src="layout/sort.xhtml">
                        <ui:param name="entityList" value="#{clientOfficeList}"/>
                        <ui:param name="propertyLabel" value="Office status"/>
                        <ui:param name="propertyPath" value="clientOffice.clientOfficeStatus"/>
                    </ui:include>
                </f:facet>
                <h:selectBooleanCheckbox value="#{_clientOffice.clientOfficeStatus}" />
            </h:column>

Maybe you are looking for