Deadlock when calling cache.containsKey()

Hi,
Under heavy load, we sometimes experience a timeout when putting data in a distributed cache. In the example below we made a call to the containsKey() method of the "EVENTS" cache at 17:04:59 which never returned. When our execution timed out 1 minute later we received the following stack trace:
20 Feb 2009 17:05:57,667 [gridgain-#70%null%:grid-job-worker] ERROR server.common.aspect.ExceptionHandlingAspect - Handling Throwable for joinPoint execution(Serializable com.t
raficon.tmsng.server.common.message.ProcessMessageJob.execute())
(Wrapped) java.lang.InterruptedException
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:485)
at com.tangosol.coherence.component.util.daemon.queueProcessor.service.Grid.poll(Grid.CDB:31)
at com.tangosol.coherence.component.util.daemon.queueProcessor.service.Grid.poll(Grid.CDB:11)
at com.tangosol.coherence.component.util.daemon.queueProcessor.service.grid.DistributedCache$BinaryMap.containsKey(DistributedCache.CDB:24)
at com.tangosol.util.ConverterCollections$ConverterMap.containsKey(ConverterCollections.java:1494)
at com.tangosol.coherence.component.util.daemon.queueProcessor.service.grid.DistributedCache$ViewMap.containsKey(DistributedCache.CDB:1)
at com.tangosol.coherence.component.util.SafeNamedCache.containsKey(SafeNamedCache.CDB:1)
at com.tangosol.net.cache.CachingMap.containsKey(CachingMap.java:400)
at com.traficon.tmsng.server.common.cache.impl.coherence.CoherenceMessageCacheFacade.hasDuplicate(CoherenceMessageCacheFacade.java:445)
at com.traficon.tmsng.server.common.cache.impl.coherence.CoherenceMessageCacheFacade.addEventMessage(CoherenceMessageCacheFacade.java:131)
at com.traficon.tmsng.server.common.process.impl.MessageProcessorImpl.process(MessageProcessorImpl.java:115)
at com.traficon.tmsng.server.common.message.ProcessMessageJob.execute(ProcessMessageJob.java:57)
at org.gridgain.grid.kernal.processors.job.GridJobWorker.body(GridJobWorker.java:406)
at org.gridgain.grid.util.runnable.GridRunnable$1.run(GridRunnable.java:142)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at org.gridgain.grid.util.runnable.GridRunnable.run(GridRunnable.java:194)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:619)
Any idea why this is? The call is not executed within a coherence service thread and I think I made sure none of my custom filters, entryProcessors, valueUpdaters etc make any re-entrant calls.
Below you can find the coherence-config.xml:
<cache-config>
<caching-scheme-mapping>
<cache-mapping>
<cache-name>DATA_STORE</cache-name>
<scheme-name>outputNear</scheme-name>
</cache-mapping>
<cache-mapping>
<cache-name>EVENTS</cache-name>
<scheme-name>processNear</scheme-name>
</cache-mapping>
<cache-mapping>
<cache-name>REDUNDANT_EXECUTOR</cache-name>
<scheme-name>processNear</scheme-name>
</cache-mapping>
<cache-mapping>
<cache-name>NODE_MONITOR</cache-name>
<scheme-name>processNear</scheme-name>
</cache-mapping>
<cache-mapping>
<cache-name>MEMORY_MONITOR</cache-name>
<scheme-name>processNear</scheme-name>
</cache-mapping>
<cache-mapping>
<cache-name>DATABASE_MONITOR</cache-name>
<scheme-name>processNear</scheme-name>
</cache-mapping>
<cache-mapping>
<cache-name>DETECTOR_COMMUNICATOR_MANAGER_LISTENER</cache-name>
<scheme-name>inputNear</scheme-name>
</cache-mapping>
<cache-mapping>
<cache-name>REMOTE_FILTER_MONITOR</cache-name>
<scheme-name>processNear</scheme-name>
</cache-mapping>
<cache-mapping>
<cache-name>LOCK_MONITOR</cache-name>
<scheme-name>processNear</scheme-name>
</cache-mapping>
<cache-mapping>
<cache-name>EVENT_NUMBER</cache-name>
<scheme-name>processNear</scheme-name>
</cache-mapping>
<cache-mapping>
<cache-name>VERIFY_CONFIGURATION</cache-name>
<scheme-name>processNear</scheme-name>
</cache-mapping>
<cache-mapping>
<cache-name>OPEN_UNKNOWN_CONFIGURATION</cache-name>
<scheme-name>processNear</scheme-name>
</cache-mapping>
</caching-scheme-mapping>
<caching-schemes>
<near-scheme>
<scheme-name>inputNear</scheme-name>
<front-scheme>
<local-scheme>
          <service-name>InputFrontService</service-name>
     <eviction-policy>LRU</eviction-policy>
     <high-units>10000</high-units>
     <expiry-delay>10m</expiry-delay>
     <flush-delay>5m</flush-delay>
</local-scheme>
</front-scheme>
<back-scheme>
     <distributed-scheme>
     <service-name>InputBackService</service-name>
     <backing-map-scheme>
     <local-scheme>
                    <service-name>InputBackLocalService</service-name>
     </local-scheme>
     </backing-map-scheme>
     <local-storage system-property="tangosol.coherence.inputNode">false</local-storage>
     <autostart system-property="tangosol.coherence.inputNode">false</autostart>
     </distributed-scheme>
</back-scheme>
<invalidation-strategy>present</invalidation-strategy>
<autostart system-property="tangosol.coherence.inputNode">false</autostart>
</near-scheme>
<near-scheme>
<scheme-name>processNear</scheme-name>
<front-scheme>
<local-scheme>
          <service-name>ProcessFrontService</service-name>
     <eviction-policy>LRU</eviction-policy>
     <high-units>10000</high-units>
     <expiry-delay>10m</expiry-delay>
     <flush-delay>5m</flush-delay>
</local-scheme>
</front-scheme>
<back-scheme>
     <distributed-scheme>
     <service-name>ProcessBackService</service-name>
     <backing-map-scheme>
     <local-scheme>
                    <service-name>ProcessBackLocalService</service-name>
     </local-scheme>
     </backing-map-scheme>
     <local-storage system-property="tangosol.coherence.processNode">false</local-storage>
     <autostart system-property="tangosol.coherence.processNode">false</autostart>
     </distributed-scheme>
</back-scheme>
<invalidation-strategy>present</invalidation-strategy>
<autostart system-property="tangosol.coherence.processNode">false</autostart>
</near-scheme>
<near-scheme>
<scheme-name>outputNear</scheme-name>
<front-scheme>
<local-scheme>
     <service-name>OutputFrontService</service-name>
               <eviction-policy>LRU</eviction-policy>
               <high-units>100</high-units>
               <expiry-delay>5m</expiry-delay>
               <flush-delay>1m</flush-delay>
</local-scheme>
</front-scheme>
<back-scheme>
     <distributed-scheme>
     <service-name>OutputBackService</service-name>
     <backing-map-scheme>
                    <read-write-backing-map-scheme>
                    <internal-cache-scheme>
                    <local-scheme>
                              <service-name>OutputBackLocalService</service-name>
                         <eviction-policy>LRU</eviction-policy>
                         <high-units>1000</high-units>
                         <expiry-delay>10m</expiry-delay>
                         <flush-delay>1m</flush-delay>
                    </local-scheme>
                    </internal-cache-scheme>
                    <cachestore-scheme>
          <class-scheme>
                    <scheme-name>outputBackStore</scheme-name>
          <class-name>spring-bean:dataStore</class-name>
          </class-scheme>
                    </cachestore-scheme>
                    <write-delay>20</write-delay>
                    <write-batch-factor>1</write-batch-factor>
                    </read-write-backing-map-scheme>
     </backing-map-scheme>
     <local-storage system-property="tangosol.coherence.outputNode">false</local-storage>
     <autostart system-property="tangosol.coherence.outputNode">false</autostart>
     </distributed-scheme>
</back-scheme>
<invalidation-strategy>auto</invalidation-strategy>
<autostart system-property="tangosol.coherence.outputNode">false</autostart>
</near-scheme>
</caching-schemes>
</cache-config>
Best regards
Jan

Hi Jan,
you should not inject Coherence caches into Spring beans and Spring beans into Coherence-managed objects from the same bean-factory/application-context.
If you want to do so, then you should use a parent application context to be used by Coherence-managed objects, and another (child or one that is initialized later) application context to define beans that have Coherence caches injected into them.
You might want to look at Spring classes containing SingletonBeanFactoryLocator in their names for easily defining multiple application contexts in a hierarchy.
Best regards,
Robert

Similar Messages

  • Running into deadlock when calling to Cipher.getInstance

    HI,
    I'm running into deadlock when calling to Cipher.getInstance() method on instrumented code,
    Is this situation familiar to anybody? Is there any solution/workaround.
    Thanks!
    "Logger_Init_thread" daemon prio=6 tid=0x0c614bc0 nid=0xebc waiting for monitor entry [0x0d12f000..0x0d12fcec]
    at sun.security.jca.ProviderConfig.getProvider(Unknown Source)
    - waiting to lock <0x0432e858> (a sun.misc.Launcher$AppClassLoader)
    at sun.security.jca.ProviderList.getProvider(Unknown Source)
    at sun.security.jca.ProviderList$ServiceList.tryGet(Unknown Source)
    at sun.security.jca.ProviderList$ServiceList.access$200(Unknown Source)
    at sun.security.jca.ProviderList$ServiceList$1.hasNext(Unknown Source)
    at javax.crypto.Cipher.getInstance(DashoA12275)

    How have you 'instrumented' the code and which code have you 'instrumented'?

  • Entries removed from cache when calling get()

    Hi. Have a problem where entries seems to be removed from the cache when calling get(). The problem occurs after the cluster has been idle (no calls to get or put) for a while. When I then call get for an entry that I know should be in the cache i can see, via an listener, that an entry is removed from the cache and the get call returns null.
    My cache is wrapped in a class that does not expose any remove methods so I know that there is no calls to remove. Below is a log showing the debug print from when the removal is done and a thread dump on the thread that does the remove.
    Attached you will find both a cache configuration and the code that produces the log below. Note that there is some code missing from the example but the missing code is only interfaces or datawrappers.
    Hopefully someone can help me solve my problem.
    Best Regards
    Marcus
    12539019 [] INFO ClientConnectionPortCacheImpl$DebugCacheListener - Entry removed - [1, null (null)]
    java.lang.Exception: Stack trace
    at java.lang.Thread.dumpStack(Unknown Source)
    at com.ongame.server.domain.casino.cluster.impl.ClientConnectionPortCacheImpl$DebugCacheListener.entryRemoved(ClientConnectionPortCacheImpl.java:121)
    at com.ongame.server.framework.cluster.cache.impl.coherence.CoherenceCacheFactory$CoherenceCacheDelegator$CacheEventAdapter.entryDeleted(CoherenceCacheFactory.java:212)
    at com.tangosol.util.MapEvent.dispatch(MapEvent.java:199)
    at com.tangosol.util.MapEvent.dispatch(MapEvent.java:164)
    at com.tangosol.util.MapListenerSupport.fireEvent(MapListenerSupport.java:550)
    at com.tangosol.coherence.component.util.SafeNamedCache.translateMapEvent(SafeNamedCache.CDB:7)
    at com.tangosol.coherence.component.util.SafeNamedCache.entryDeleted(SafeNamedCache.CDB:1)
    at com.tangosol.util.MapEvent.dispatch(MapEvent.java:199)
    at com.tangosol.coherence.component.util.daemon.queueProcessor.service.DistributedCache$ViewMap$ProxyListener.dispatch(DistributedCache.CDB:22)
    at com.tangosol.coherence.component.util.daemon.queueProcessor.service.DistributedCache$ViewMap$ProxyListener.entryDeleted(DistributedCache.CDB:1)
    at com.tangosol.util.MapEvent.dispatch(MapEvent.java:199)
    at com.tangosol.coherence.component.util.CacheEvent.run(CacheEvent.CDB:18)
    at com.tangosol.coherence.component.util.daemon.queueProcessor.Service$EventDispatcher.onNotify(Service.CDB:14)
    at com.tangosol.coherence.component.util.Daemon.run(Daemon.CDB:34)
    at java.lang.Thread.run(Unknown Source)<br><br> <b> Attachment: </b><br>coherence-java-example.txt <br> (*To use this attachment you will need to rename 455.bin to coherence-java-example.txt after the download is complete.)<br><br> <b> Attachment: </b><br>coherence-cfg-example.txt <br> (*To use this attachment you will need to rename 454.bin to coherence-cfg-example.txt after the download is complete.)

    Hi Marcus,
    Your configs clearly show that you cannot have eviction.
    From what you have described, you are almost certainly seeing eviction.
    I conclude that the config that is being used is not the config that you intend to get used. To verify this, you can look at the logs to see what config is getting used. I believe you will see what configuration is being used when that config file is loaded. For example, in version 3.2:
    2006-11-22 19:32:13.068 Tangosol Coherence DGE 3.2/367 <Info> (thread=main,
    member=1): Loaded cache configuration from resource
    "jar:file:/C:/java/opt/coherence320b367/tangosol/lib/coherence.jar!/coherence-cache-config.xml"
    Having seen this same problem before (encountering it myself and seeing others encounter it), we added that logging to be clear which config file was being used. If you use the command line tool, it will additionally show you the cache config for the cache that is being accessed when you type the "cache xxx" command (xxx being the name of the cache).
    Peace,
    Cameron.

  • Getting   FRM-41029   when calling report from form

    Hi
    I have following procedure to run the report but its running fine but giving error FRM-41029 when calling the report from the form.
    runrep('MATREP,'REPSER','PDF','F:\rec\RepEnt.RDF');
    Repid := FIND_REPORT_OBJECT(repobj);
    SET_REPORT_OBJECT_PROPERTY(repid,REPORT_EXECUTION_MODE, RUNTIME);
    set_report_object_property(repid, REPORT_SERVER, repserv);
    set_report_object_property(repid, REPORT_COMM_MODE, SYNCHRONOUS);
    set_report_object_property(repid, REPORT_DESTYPE,'file');
    set_report_object_property(repid, REPORT_DESFORMAT,repfor);
    set_report_object_property(repid, REPORT_FILENAME,repfile);
    rgds
    soumya

    hi
    try something like this.
    PROCEDURE sarah ( p_report_name varchar2, vParamValue number ) is
    l_param_list  paramlist;
    l_rep_id      report_object;
    l_rep_job     varchar2(100);
    l_rep_status  varchar(100);
    BEGIN
    l_param_list := Get_parameter_List('tmp');
    IF NOT Id_Null(l_param_list ) THEN
    Destroy_parameter_List( l_param_list );
    END IF;
    l_param_list := Create_parameter_List('tmp');
    add_parameter(l_param_list ,'p_num',text_parameter,to_char( vParamValue ));
    l_rep_id := FIND_REPORT_OBJECT( p_report_name );
    if
         id_null ( l_rep_id )
    then
      msg ( 'There is no Report ' || p_report_name || ' in form ' || name_in ( 'system.current_form' ) );
      raise form_trigger_failure;
    end if;
    SET_REPORT_OBJECT_PROPERTY(l_rep_id, REPORT_COMM_MODE,SYNCHRONOUS);
    SET_REPORT_OBJECT_PROPERTY(l_rep_id, REPORT_DESTYPE,cache);
    SET_REPORT_OBJECT_PROPERTY(l_rep_id, REPORT_DESFORMAT,'PDF');
    SET_REPORT_OBJECT_PROPERTY(l_rep_id, REPORT_OTHER, 'paramform=no');
    l_rep_job := RUN_REPORT_OBJECT( l_rep_id, l_param_list );
    l_rep_status := REPORT_OBJECT_STATUS( l_rep_job );
    WHILE l_rep_status in ('RUNNING','OPENING_REPORT','ENQUEUED')
    LOOP
    l_rep_status := report_object_status( l_rep_job );
    END LOOP;
    WEB.SHOW_DOCUMENT('http://sarah:8889/reports/rwservlet/getjobid'||substr(l_rep_job,instr(l_rep_job,'_',-1)+1) || '?server=repserver', '_blank');
    END; then u may call the procedure something like this.
    when-button-pressed trigger.
    begin
    sarah ('REPORT6', :block.item );
    end;sarah
    Edited by: S@R@h on Nov 30, 2009 9:39 PM

  • PI 7.0: Error when calling an adapter by using communication channel

    Hello Experts,
    We have a mapping scenario for ERP -> PI -> web service. Few details from ERP will be sent via PI to Web service. 
    Once the web service authenticates, token and sign will be generated. Here an RFC adapter is  used for configuring the RFC receiver communication channel and provided the ERP system logon details at the RFC client parameter.
    An error is received as mentioned below.
    Error while lookup Exception during processing the payload.Problem when calling an adapter by using communication channel CC_Rcvr_RFC_Lookup_TokenSign (Party: , Service: BS_QV6_700, Object ID: 54e904ebf3d7382a84a0f83cd292b810)
    XI AF API call failed. Module exception: 'error while processing the request to rfc-client: com.sap.aii.af.rfc.afcommunication.RfcAFWException: error while processing message to remote system:com.sap.aii.af.rfc.core.client.RfcClientException: functiontemplate from repository was <null>'. com.sap.aii.mapping.lookup.LookupException
    The logon details in RFC parameter are corrected. Re-activated the the communication channel and refreshed the cache.
    But still the error is not resolved.Please let me know if there is anything else i need to check.
    Thanks in advance.
    Regards,
    Sri

    Hello,
    You could also check note 730870  FAQ XI 3.0/ PI 7.0/ PI 7.1 RFC Adapter
    Q 16:
    While sending a message to the RfcAdapter the error "...functiontemplate from repository was <null>" is shown. Which reasons are possible?
    Regards,
    Sarah

  • JTextField update problem when called from PropertyChangeEvent

    Hi,
    I'm trying to create forms that can be dynamically loaded with Class.forname(formName).
    Those forms should always inherit some methods that make it easy to pass data to
    them and receive data from them. The idea is that the data comes from a table which
    sends a hashmap (String column/JTextField-name + String Value pairs) with firePropertyChanged
    as soon as a new row is seleceted. The JTextFields in the form are marked with setName("FieldName") that has to correspond to the name of the columns of the table.
    My problem is that I can't update the fields in my form when I'm calling getRow(HashMap)
    from within propertyChangeEvent but that's necessary to keep the forms flexible.
    JTextFieldName.setText(newText) just won't work. But it works when I call getRow(HashMap)
    from the constructor. SwingWorker and threads to update the form didn't help.
    I don't need to call pack() / update() / repaint() on the JFrame, do I ??
    update() / validate() / repaint() etc. didn't work on the JTextField themselves.
    Below is the code for one of the test-forms (just a JPanel that is inserted in a frame)
    with all of it's methods. Does anybody have a solution to this problem ??
    Thanks for taking time for that !!
    Benjamin
    * testTable.java
    * Created on 15. April 2004, 16:12
    package viewcontrol.GUI;
    * @author gerbarmb
    import javax.swing.*;
    import java.awt.*;
    import java.beans.*;
    import java.util.*;
    public class testTable extends javax.swing.JPanel
              implements
                   java.awt.event.KeyListener,
                   java.beans.PropertyChangeListener {
          * public static void main(String[] argv) { testTable tt = new testTable();
          * JFrame jf = new JFrame(); jf.setContentPane(tt); jf.setVisible(true); }
         /** Creates new customizer testTable */
         public testTable() {
              initComponents();
              HashMap hm = new HashMap();
               * Only for debugging, to see that the method getRow() works when
               * called from the constructor.
               hm.put("ttext", "TEst");
               this.getRow(hm);
          * This method is called from within the constructor to initialize the form.
          * WARNING: Do NOT modify this code. The content of this method is always
          * regenerated by the FormEditor.
         private void initComponents() {//GEN-BEGIN:initComponents
              java.awt.GridBagConstraints gridBagConstraints;
              jLabel1 = new javax.swing.JLabel();
              textIn = new javax.swing.JTextField();
              jLabel2 = new javax.swing.JLabel();
              intIn = new javax.swing.JTextField();
              jLabel3 = new javax.swing.JLabel();
              numIn = new javax.swing.JTextField();
              jLabel4 = new javax.swing.JLabel();
              dateIn = new javax.swing.JTextField();
              jLabel5 = new javax.swing.JLabel();
              dateTimeIn = new javax.swing.JTextField();
              jLabel6 = new javax.swing.JLabel();
              jCheckBox1 = new javax.swing.JCheckBox();
              keepValues = new javax.swing.JCheckBox();
              jButton1 = new javax.swing.JButton();
              setLayout(new java.awt.GridBagLayout());
              jLabel1.setText("Text");
              add(jLabel1, new java.awt.GridBagConstraints());
              textIn.setName("ttext");
              textIn.setPreferredSize(new java.awt.Dimension(100, 21));
              textIn.addActionListener(new java.awt.event.ActionListener() {
                   public void actionPerformed(java.awt.event.ActionEvent evt) {
                        textInActionPerformed(evt);
              gridBagConstraints = new java.awt.GridBagConstraints();
              gridBagConstraints.gridwidth = 2;
              add(textIn, gridBagConstraints);
              jLabel2.setText("Integer");
              add(jLabel2, new java.awt.GridBagConstraints());
              intIn.setName("tint");
              intIn.setPreferredSize(new java.awt.Dimension(50, 21));
              add(intIn, new java.awt.GridBagConstraints());
              jLabel3.setText("Number");
              add(jLabel3, new java.awt.GridBagConstraints());
              numIn.setName("tnum");
              numIn.setPreferredSize(new java.awt.Dimension(50, 21));
              add(numIn, new java.awt.GridBagConstraints());
              jLabel4.setText("Date");
              gridBagConstraints = new java.awt.GridBagConstraints();
              gridBagConstraints.gridx = 0;
              gridBagConstraints.gridy = 1;
              add(jLabel4, gridBagConstraints);
              dateIn.setName("tdate");
              dateIn.setPreferredSize(new java.awt.Dimension(50, 21));
              gridBagConstraints = new java.awt.GridBagConstraints();
              gridBagConstraints.gridx = 1;
              gridBagConstraints.gridy = 1;
              add(dateIn, gridBagConstraints);
              jLabel5.setText("DateTime");
              gridBagConstraints = new java.awt.GridBagConstraints();
              gridBagConstraints.gridx = 2;
              gridBagConstraints.gridy = 1;
              add(jLabel5, gridBagConstraints);
              dateTimeIn.setName("tidate");
              dateTimeIn.setPreferredSize(new java.awt.Dimension(80, 21));
              gridBagConstraints = new java.awt.GridBagConstraints();
              gridBagConstraints.gridy = 1;
              add(dateTimeIn, gridBagConstraints);
              jLabel6.setText("Bit");
              gridBagConstraints = new java.awt.GridBagConstraints();
              gridBagConstraints.gridy = 1;
              add(jLabel6, gridBagConstraints);
              jCheckBox1.setName("tbit");
              gridBagConstraints = new java.awt.GridBagConstraints();
              gridBagConstraints.gridy = 1;
              add(jCheckBox1, gridBagConstraints);
              keepValues.setText("keep values");
              gridBagConstraints = new java.awt.GridBagConstraints();
              gridBagConstraints.gridx = 7;
              gridBagConstraints.gridy = 3;
              add(keepValues, gridBagConstraints);
              jButton1.setText("Send");
              jButton1.addActionListener(new java.awt.event.ActionListener() {
                   public void actionPerformed(java.awt.event.ActionEvent evt) {
                        jButton1ActionPerformed(evt);
              gridBagConstraints = new java.awt.GridBagConstraints();
              gridBagConstraints.gridx = 7;
              gridBagConstraints.gridy = 2;
              add(jButton1, gridBagConstraints);
         }//GEN-END:initComponents
         private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed
              sendRow();
         }//GEN-LAST:event_jButton1ActionPerformed
         private boolean sendRow() {
              java.util.HashMap hm = new java.util.HashMap();
              Component[] cs = this.getComponents();
              for (int i = 0; i < cs.length; i++) {
                   if (((Component) cs).getName() != null) {
                        if (cs[i] instanceof JCheckBox) {
                             String value = ((JCheckBox) cs[i]).isSelected() ? "1" : "0";
                             hm.put(cs[i].getName(), value);
                        } else if (cs[i] instanceof JCheckBox) {
                             hm.put(cs[i].getName(), ((JTextField) cs[i]).getText());
              } // end for
              firePropertyChange("rowChanged", null, hm);
              return true;
         private void getRow(java.util.HashMap hm) {
              //if (! this.keepValues.isSelected()) {
              Component[] cs = this.getComponents();
              for (int i = 0; i < cs.length; i++) {
                   if (cs[i].getName() != null && hm.containsKey(cs[i].getName())) {
                        Component component = cs[i];
                        String componentName = cs[i].getName();
                        String componentValue = (String) hm.get(component.getName());
                        if (cs[i] instanceof JTextField) {
                             // output for debugging
                             System.out.println("Setting " + cs[i].getName() + " = "
                                       + componentValue);
                             ((JTextField) component).setText(componentValue);
                        } else if (cs[i] instanceof JCheckBox) {
                             // output for debugging
                             System.out.println("JCheckBox found");
                             JCheckBox cb = (JCheckBox) component;
                             boolean selected = (componentValue == null ? false : (componentValue.equals("1")
                                       ? true
                                       : false));
                             ((JCheckBox) component).setSelected(selected);
              } // end for
              /* Uncomment this code snippet to retrieve the text that has been set
              for the components (that means JTextFields)
              This is just for debugging !
              Component[] cs = this.getComponents(); for (int i = 0; i < cs.length;
              i++) { if (cs[i].getName() != null) { if (cs[i] instanceof
              JTextField) { System.out.println("Value of " +cs[i].getName() + " = " +
              ((JTextField) cs[i]).getText()); } } } // end for
         private void textInActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_textInActionPerformed
         }//GEN-LAST:event_textInActionPerformed
         public void keyPressed(java.awt.event.KeyEvent e) {
              if (e.getKeyCode() == java.awt.event.KeyEvent.VK_ENTER) {
                   sendRow();
         public void keyReleased(java.awt.event.KeyEvent e) {
         public void keyTyped(java.awt.event.KeyEvent e) {
         public void propertyChange(java.beans.PropertyChangeEvent evt) {
              if (evt.getPropertyName().equals("newRow")) {
                   final PropertyChangeEvent finalEvt = evt;
                   Runnable makeChanges = new Runnable () {
                        public void run() {
                             getRow((java.util.HashMap) finalEvt.getNewValue());
         // Variables declaration - do not modify//GEN-BEGIN:variables
         private javax.swing.JTextField dateIn;
         private javax.swing.JTextField dateTimeIn;
         private javax.swing.JTextField intIn;
         private javax.swing.JButton jButton1;
         private javax.swing.JCheckBox jCheckBox1;
         private javax.swing.JLabel jLabel1;
         private javax.swing.JLabel jLabel2;
         private javax.swing.JLabel jLabel3;
         private javax.swing.JLabel jLabel4;
         private javax.swing.JLabel jLabel5;
         private javax.swing.JLabel jLabel6;
         private javax.swing.JCheckBox keepValues;
         private javax.swing.JTextField numIn;
         private javax.swing.JTextField textIn;
         // End of variables declaration//GEN-END:variables

    The problem of the change in the form not being comitted is that
    I forgot SwingUtilities.invokeLater(makeChanges); in the bottom
    part in public void propertyChange(java.beans.PropertyChangeEvent evt)
    after having created a new Runnable.
    Changes to the UI often have to be comitted by SwingUtitlities.invokeLater()
    though I don't know that much about Swing yet.
    Thanks to everybody who tried to solve that problem.
    Benjamin

  • How to get PDF file name when DESTYPE=CACHE

    Hello.
    I'd like to retrieve the generated file name from the cache directory in the After Report trigger when DESTYPE=CACHE and DESFORMAT=PDF
    Is it possible?
    Thanks
    Rasto Sadecky
    [email protected]

    Thank you Rohit.
    It's not really the caching mechanism I'm interested in.
    What I need to do is a physical modification of the generated PDF file.
    We have done it successfully for DESTYPE=FILE because in this case
    we know the name of the PDF file so the after report trigger can call an external dll library
    that modifies the PDF file.
    But when I'm calling the report from a JSP I can't do the same because
    I don't know the name of the PDF.
    Any ideas?
    Thanks
    Rasto

  • Core Dump when calling DriverManager.getConnection

    I'm very confused and hope someone can help me out with this.
    I'm trying to make a connection to a MS SQL Server 7 and am getting a core dump when getConnection is called. No exception is thrown, just a core dump and locked session. If I run the class from it's main there is absolutly no problem, but when I do a new on the class and call it's member to establish the connection: core dump. The environment is the same in both cases. The calling class did does use a mySql connection, but I tried closing it and setting it to null with the same problem. I'm not sure if the getConnection is stepping on a socket or what it's trying to violate in memory causing the dump. This is running on a SCO Openserver 5.0.5 box (green threads). Why it runs stand-alone and not when called from another class has got me tangled... Thread problem? I've tried several SQL drivers, they all do the same thing.
    Anyway, here's a snippet from the java class:
    try
    {Class.forName(myForName);
    // core dump, next line
    Connection myConn = DriverManager.getConnection(myUrl, myUser, myPass);
    // never get's here
    Statement myStmt = myConn.createStatement();
    catch (Exception e) // modified for this post
    {system.out.println(e.toString());
    Here's the dump printed to the monitor (2>&1)
    SIGSEGV 11* segmentation violation
    si_signo [11]: SIGSEGV 11* segmentation violation
    si_errno [0]: Error 0
    si_code [1]: SEGV_MAPERR [addr: 0x8]
         stackpointer=81adc820
    Full thread dump Classic VM (SCO-JDK-1.2.2-001:2000-Feb-17-03:54, green threads):
    "Thread-0" (TID:0x8074f3c8, sys_thread_t:0x83ae258, state:R) prio=5
         at com.inet.tds.TdsDriver.run(Unknown Source)
         at java.lang.Thread.run(Thread.java, Compiled Code)
    "process reaper" (TID:0x807431d0, sys_thread_t:0x82cd980, state:CW) prio=5
         at java.lang.Object.wait(Native Method)
         at java.lang.UNIXProcess.run(Native Method)
         at java.lang.Thread.run(Thread.java, Compiled Code)
    "Finalizer" (TID:0x8071f320, sys_thread_t:0x808e478, state:CW) prio=8
         at java.lang.Object.wait(Native Method)
         at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java, Compiled Code)
         at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java, Compiled Code)
         at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:174)
    "Reference Handler" (TID:0x8071f3b0, sys_thread_t:0x808a2d8, state:CW) prio=10
         at java.lang.Object.wait(Native Method)
         at java.lang.Object.wait(Object.java, Compiled Code)
         at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:114)
    "Signal dispatcher" (TID:0x8071f3e0, sys_thread_t:0x80845a8, state:CW) prio=5
    "main" (TID:0x8071f1e0, sys_thread_t:0x804c2d8, state:R) prio=5
         at java.lang.Thread.sleep(Native Method)
         at com.inet.tds.TdsDriver.connect(Unknown Source)
         at java.sql.DriverManager.getConnection(DriverManager.java, Compiled Code)
         at java.sql.DriverManager.getConnection(DriverManager.java, Compiled Code)
         at SLSCorpRpt.printSchedule(SLSCorpRpt.java, Compiled Code)
         at SLSSchedule.runSchedule(SLSSchedule.java, Compiled Code)
         at SLSTextMain.<init>(SLSTextMain.java, Compiled Code)
         at SLSTextMain.main(SLSTextMain.java, Compiled Code)
    Monitor Cache Dump:
    java.lang.Object@807431A8/807C6140: <unowned>
         Waiting to be notified:
         "process reaper" (0x82cd980)
    java.lang.Class@80736EF8/807970A8: owner "main" (0x804c2d8) 2 entries
    <unknown key> (0x80737c21): owner "Thread-0" (0x83ae258) 1 entry
    java.lang.ref.ReferenceQueue$Lock@8071F338/80754D60: <unowned>
         Waiting to be notified:
         "Finalizer" (0x808e478)
    java.lang.ref.Reference$Lock@8071F3C0/80754890: <unowned>
         Waiting to be notified:
         "Reference Handler" (0x808a2d8)
    Registered Monitor Dump:
    PCMap lock: <unowned>
    utf8 hash table: <unowned>
    JNI pinning lock: <unowned>
    JNI global reference lock: <unowned>
    BinClass lock: owner "Thread-0" (0x83ae258) 1 entry
    Class linking lock: <unowned>
    System class loader lock: <unowned>
    Code rewrite lock: <unowned>
    Heap lock: <unowned>
    Monitor cache lock: owner "Thread-0" (0x83ae258) 1 entry
    Monitor IO lock: <unowned>
    User signal monitor: <unowned>
         Waiting to be notified:
         "Signal dispatcher" (0x80845a8)
    Child death monitor: <unowned>
    I/O monitor: <unowned>
    Alarm monitor: <unowned>
         Waiting to be notified:
         <unknown thread> (0x804be18)
    Thread queue lock: owner "Thread-0" (0x83ae258) 1 entry
    Monitor registry: owner "Thread-0" (0x83ae258) 1 entry
    SIGABRT 6* abort (generated by abort(3) routine)
         stackpointer=81adc820
    Full thread dump Classic VM (SCO-JDK-1.2.2-001:2000-Feb-17-03:54, green threads):
    "Thread-0" (TID:0x8074f3c8, sys_thread_t:0x83ae258, state:R) prio=5
         at com.inet.tds.TdsDriver.run(Unknown Source)
         at java.lang.Thread.run(Thread.java, Compiled Code)
    "process reaper" (TID:0x807431d0, sys_thread_t:0x82cd980, state:CW) prio=5
         at java.lang.Object.wait(Native Method)
         at java.lang.UNIXProcess.run(Native Method)
         at java.lang.Thread.run(Thread.java, Compiled Code)
    "Finalizer" (TID:0x8071f320, sys_thread_t:0x808e478, state:CW) prio=8
         at java.lang.Object.wait(Native Method)
         at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java, Compiled Code)
         at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java, Compiled Code)
         at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:174)
    "Reference Handler" (TID:0x8071f3b0, sys_thread_t:0x808a2d8, state:CW) prio=10
         at java.lang.Object.wait(Native Method)
         at java.lang.Object.wait(Object.java, Compiled Code)
         at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:114)
    "Signal dispatcher" (TID:0x8071f3e0, sys_thread_t:0x80845a8, state:CW) prio=5
    "main" (TID:0x8071f1e0, sys_thread_t:0x804c2d8, state:R) prio=5
         at java.lang.Thread.sleep(Native Method)
         at com.inet.tds.TdsDriver.connect(Unknown Source)
         at java.sql.DriverManager.getConnection(DriverManager.java, Compiled Code)
         at java.sql.DriverManager.getConnection(DriverManager.java, Compiled Code)
         at SLSCorpRpt.printSchedule(SLSCorpRpt.java, Compiled Code)
         at SLSSchedule.runSchedule(SLSSchedule.java, Compiled Code)
         at SLSTextMain.<init>(SLSTextMain.java, Compiled Code)
         at SLSTextMain.main(SLSTextMain.java, Compiled Code)
    Monitor Cache Dump:
    java.lang.Object@807431A8/807C6140: <unowned>
         Waiting to be notified:
         "process reaper" (0x82cd980)
    java.lang.Class@80736EF8/807970A8: owner "main" (0x804c2d8) 2 entries
    <unknown key> (0x80737c21): owner "Thread-0" (0x83ae258) 1 entry
    java.lang.ref.ReferenceQueue$Lock@8071F338/80754D60: <unowned>
         Waiting to be notified:
         "Finalizer" (0x808e478)
    java.lang.ref.Reference$Lock@8071F3C0/80754890: <unowned>
         Waiting to be notified:
         "Reference Handler" (0x808a2d8)
    Registered Monitor Dump:
    PCMap lock: <unowned>
    utf8 hash table: <unowned>
    JNI pinning lock: <unowned>
    JNI global reference lock: <unowned>
    BinClass lock: owner "Thread-0" (0x83ae258) 1 entry
    Class linking lock: <unowned>
    System class loader lock: <unowned>
    Code rewrite lock: <unowned>
    Heap lock: <unowned>
    Monitor cache lock: owner "Thread-0" (0x83ae258) 1 entry
    Monitor IO lock: <unowned>
    User signal monitor: <unowned>
         Waiting to be notified:
         "Signal dispatcher" (0x80845a8)
    Child death monitor: <unowned>
    I/O monitor: <unowned>
    Alarm monitor: <unowned>
         Waiting to be notified:
         <unknown thread> (0x804be18)
    Thread queue lock: owner "Thread-0" (0x83ae258) 1 entry
    Monitor registry: owner "Thread-0" (0x83ae258) 1 entry

    I have a similar problem with establishing a connection through JNI. Have you resolved your problem?
    Here's mine.
    In java, I have a class that provides an interface to a mysql database. The java programs that call this interface work fine.
    When I try to call the java interface from C++ through JNI, I get the following output -- some debug statements sprinkled through also. I am assuming that the JVM is missing something at runtime that is there in my JRE. The classpaths match , etc. Exception handling in java and in JNI code are not providing any more detail.. Thanks for comments!!
    Created jvm
    Got KBModel and String classes
    KBModel.java:stest()
    KBModel.java:init(String)
    KBModel.java:init(String) - got Properties file
    Got DBDRIVER class: org.gjt.mm.mysql.Driver
    Object = class org.gjt.mm.mysql.Driver
    init(): DBURLSTRING = jdbc:mysql://sturgeon.xxx.com:3306/<valid db name>
    init(): DBUSER = <valid user>
    init(): DBPASSWORD =<valid password>
    KBModel.java:init(Properties) - Attempting connection
    init(): Drivers available:
    com.mysql.jdbc.Driver
    Driver accepts this URL
    An unexpected exception has been detected in native code outside the VM.
    Unexpected Signal : 11 occurred at PC=0x4053ea09
    Function name=(N/A)
    Library=/lib/i686/libc.so.6
    NOTE: We are unable to locate the function name symbol for the error
    just occurred. Please refer to release documentation for possible
    reason and solutions.
    Dynamic libraries:
    08048000-0804a000 r-xp 00000000 03:02 279279 /home/kathy/cm/src/Onto/Tools/Annotator/src/test/invokeKB
    0804a000-0804b000 rw-p 00001000 03:02 279279 /home/kathy/cm/src/Onto/Tools/Annotator/src/test/invokeKB
    40000000-40016000 r-xp 00000000 03:02 2093075 /lib/ld-2.2.4.so
    40016000-40017000 rw-p 00015000 03:02 2093075 /lib/ld-2.2.4.so
    40017000-40020000 r-xp 00000000 03:02 1309343 /usr/java/jdk1.3.1_03/jre/lib/i386/native_threads/libhpi.so
    40020000-40021000 rw-p 00008000 03:02 1309343 /usr/java/jdk1.3.1_03/jre/lib/i386/native_threads/libhpi.so
    40031000-40032000 r--p 00000000 03:02 768548 /usr/lib/locale/en_US/LC_IDENTIFICATION
    40033000-40085000 r-xp 00000000 03:02 328384 /usr/lib/libodbc.so.1.0.0
    40085000-40088000 rw-p 00051000 03:02 328384 /usr/lib/libodbc.so.1.0.0
    40088000-400c1000 r-xp 00000000 03:02 327275 /usr/lib/libstdc++-3-libc6.2-2-2.10.0.so
    400c1000-400c8000 rw-p 00038000 03:02 327275 /usr/lib/libstdc++-3-libc6.2-2-2.10.0.so
    400ca000-400eb000 r-xp 00000000 03:02 246620 /usr/java/jdk1.3.1_03/jre/lib/i386/libjava.so
    400eb000-400ed000 rw-p 00020000 03:02 246620 /usr/java/jdk1.3.1_03/jre/lib/i386/libjava.so
    400ee000-400ff000 r-xp 00000000 03:02 246629 /usr/java/jdk1.3.1_03/jre/lib/i386/libverify.so
    400ff000-40101000 rw-p 00010000 03:02 246629 /usr/java/jdk1.3.1_03/jre/lib/i386/libverify.so
    40101000-402f1000 r-xp 00000000 03:02 1701922 /usr/java/jdk1.3.1_03/jre/lib/i386/client/libjvm.so
    402f1000-403f1000 rw-p 001ef000 03:02 1701922 /usr/java/jdk1.3.1_03/jre/lib/i386/client/libjvm.so
    40408000-4053c000 r-xp 00000000 03:02 2093084 /lib/libc-2.2.4.so
    4053c000-40542000 rw-p 00133000 03:02 2093084 /lib/libc-2.2.4.so
    40547000-4054a000 r-xp 00000000 03:02 2093088 /lib/libdl-2.2.4.so
    4054a000-4054b000 rw-p 00002000 03:02 2093088 /lib/libdl-2.2.4.so
    4054b000-40558000 r-xp 00000000 03:02 343415 /lib/i686/libpthread-0.9.so
    40558000-40560000 rw-p 0000c000 03:02 343415 /lib/i686/libpthread-0.9.so
    40560000-40582000 r-xp 00000000 03:02 343413 /lib/i686/libm-2.2.4.so
    40582000-40583000 rw-p 00021000 03:02 343413 /lib/i686/libm-2.2.4.so
    40583000-40596000 r-xp 00000000 03:02 2093093 /lib/libnsl-2.2.4.so
    40596000-40597000 rw-p 00012000 03:02 2093093 /lib/libnsl-2.2.4.so
    40599000-405cd000 r-xp 00000000 03:02 328243 /usr/lib/libstdc++-2-libc6.1-1-2.9.0.so
    405cd000-405d9000 rw-p 00033000 03:02 328243 /usr/lib/libstdc++-2-libc6.1-1-2.9.0.so
    405dc000-405f0000 r-xp 00000000 03:02 246630 /usr/java/jdk1.3.1_03/jre/lib/i386/libzip.so
    405f0000-405f3000 rw-p 00013000 03:02 246630 /usr/java/jdk1.3.1_03/jre/lib/i386/libzip.so
    405f3000-41327000 r--s 00000000 03:02 1717328 /usr/java/jdk1.3.1_03/jre/lib/rt.jar
    41354000-4164b000 r--s 00000000 03:02 1717321 /usr/java/jdk1.3.1_03/jre/lib/i18n.jar
    4164b000-41661000 r--s 00000000 03:02 1717329 /usr/java/jdk1.3.1_03/jre/lib/sunrsasign.jar
    43709000-4370a000 r--p 00000000 03:02 408823 /usr/lib/locale/en_US/LC_MEASUREMENT
    4370a000-4370b000 r--p 00000000 03:02 2158478 /usr/lib/locale/en_US/LC_TELEPHONE
    4370b000-4370c000 r--p 00000000 03:02 2158480 /usr/lib/locale/en_US/LC_ADDRESS
    4370c000-4370d000 r--p 00000000 03:02 2158479 /usr/lib/locale/en_US/LC_NAME
    4370d000-4370e000 r--p 00000000 03:02 1864168 /usr/lib/locale/en_US/LC_PAPER
    4370e000-4370f000 r--p 00000000 03:02 2174846 /usr/lib/locale/en_US/LC_MESSAGES/SYS_LC_MESSAGES
    4370f000-43710000 r--p 00000000 03:02 408822 /usr/lib/locale/en_US/LC_MONETARY
    49d5f000-49d8a000 r--p 00000000 03:02 572342 /usr/lib/locale/en_US/LC_CTYPE
    49d8a000-49d90000 r--p 00000000 03:02 866674 /usr/lib/locale/en_US/LC_COLLATE
    49d90000-49d91000 r--p 00000000 03:02 768549 /usr/lib/locale/en_US/LC_TIME
    49d91000-49d92000 r--p 00000000 03:02 572338 /usr/lib/locale/en_US/LC_NUMERIC
    49d93000-49d9c000 r-xp 00000000 03:02 246627 /usr/java/jdk1.3.1_03/jre/lib/i386/libnet.so
    49d9c000-49d9d000 rw-p 00008000 03:02 246627 /usr/java/jdk1.3.1_03/jre/lib/i386/libnet.so
    49d9d000-49da7000 r-xp 00000000 03:02 2093117 /lib/libnss_nisplus-2.2.4.so
    49da7000-49da8000 rw-p 00009000 03:02 2093117 /lib/libnss_nisplus-2.2.4.so
    49da8000-49dab000 r-xp 00000000 03:02 2093106 /lib/libnss_dns-2.2.4.so
    49dab000-49dac000 rw-p 00002000 03:02 2093106 /lib/libnss_dns-2.2.4.so
    49dad000-49db7000 r-xp 00000000 03:02 2093109 /lib/libnss_files-2.2.4.so
    49db7000-49db8000 rw-p 00009000 03:02 2093109 /lib/libnss_files-2.2.4.so
    4a624000-4a67a000 r--s 00000000 03:02 540401 /usr/java/jdk1.3.1_03/jre/lib/ext/log4j-1.2.6.jar
    4a695000-4a6a3000 r-xp 00000000 03:02 2093122 /lib/libresolv-2.2.4.so
    4a6a3000-4a6a5000 rw-p 0000d000 03:02 2093122 /lib/libresolv-2.2.4.so
    Local Time = Thu Feb 13 13:35:05 2003
    Elapsed Time = 1
    # The exception above was detected in native code outside the VM
    # Java VM: Java HotSpot(TM) Client VM (1.3.1_03-b03 mixed mode)
    # An error report file has been saved as hs_err_pid9210.log.
    # Please refer to the file for further information.
    #

  • Simsession short dump when calling BAPI

    Hello,
    I have created a macro in Demand Planning that calls BAPI_APO_AVAILABILITY_CHECK.
    When running this is SE37 or SE38, everything works fine. But when calling this from //SDP94 I got a shortdump, because the BAPI wanted to create a simsession, but there was already an existing simsession.
    Do you think, this is an error in the BAPI, or do i have to handle this in the calling FM?
    Would this be the right approach:
    FM "Z_TEST"
    CALL FUNCTION //RRP_SIMSESSION_GET         -
    Save SIMSESSION from DP
    CALL FUNCTION //RRP_SIMSESSION_LEAVE     -
    Clear Simsession
    CALL FUNCTION //BAPI_APO_AVAILABILITY_CHECK
    CALL FUNCTION //RRP_SIMSESSION_SET         -
    Set old SIMSESSION back
    I do not understand the purpose of the SIMSESSION, so I rely on your comments and help.
    Thanks for any feedback,
    BR,
    Dominik

    Hi Domink
    Simsessions are simulation sessions or work areas for transactional live cache data. You must create a simsession in order to retrieve and work with data from live cache. When finished you should close the simsession however most times the end of a LUW will delete the simsession. If data created/changed in a simsession needs to be saved an explicit LC commit may be required but in most cases that is taken care of within SAP code. In fact, the leave simsession fm will determine that data in the simsession has changed and ask if you want to save.
    I am not sure if you can get around the simsession creation problem in the ATP BAPI. If you had control over the code such as in a Zfunction module you could either not create the simsession or force a merge of simsessions. Do not code the leave simsession because that will delete (rollback) or force the save of the changed data from your planning book before you entered the macro - in addition when you return to your planning book from the macro there will not be a simsession for you to save or change data.
    Why are you running ATP from within a DP planning book? Are you looking for what stock is available to update another KF? Do you need to run through the entire ATP process to retrieve an available qty or can you use a simpler function module to retrieve the stock? Another option is to read the planning book in a stand alone program, do the ATP check and whatever logic is necessary before writing back to the planning book.
    Hope this helps
    Andy

  • Hide UserID, Password, and Report Path when call Report from Report

    Hi,
    I have been able to call Report from Report using the hyperlink.
    I put these code in my Field on the Report caller.
    function F_3FormatTrigger return boolean is
      temp varchar2(2000);
    begin
      temp := 'http://<computer_name>:8889/reports/rwservlet?';
      temp := temp || 'server=repsrv' || '&' ||
                         'report=C:\MyReport\rep_detail.jsp' || '&' ||
                         'userid=scott/tiger@orcl' || '&' ||
                         'desformat=htmlcss' || '&' ||
                         'destype=cache' || '&' ||
                         'P_1=' || :ItemID || '&' ||
                         'P_2=' || :ItemName;
      SRW.Set_Hyperlink(temp);
      return (TRUE);
    end;The hyperlink showed, and I can see the rep_detail.jsp showed in the same browser after I clicked the hyperlink.
    The problem is, the hyperlink has to include the reports path and also userid and password.
    If I did not put the userid and password, it will showed in another browse that
    "The report has uncompiled PL/SQL"
    How can I hide those userid, password, and the reports path?
    BTW, Is there anyway to show the report callee in different page (precisely, open another IE) from the report caller?
    Any help would be grateful.
    Many thanks,
    Buntoro

    Hi,
    Thanks for the answers.
    Yet, I am still doubt about using cgicmd.dat.
    I have looked around in this forum saying that it is not secure to use cgicmd.dat. Because all report request does not use authentication (the client can directly open report without login).
    In Form, I can use the On-Logon to do the Oracle Form login (to do logon to the database), and then I use my own custom user login to restrict the menu for each user.
    I do this since I want to restrict the user,
    i.e user A can only view the sales form as well as sales report,
    user B can only view the purchasing form as well as purchasing report.
    Well, I am not so fond about the SSO itself.
    It comes to my mind, since I don't have to re-login (to the database) each time I call another form (login database is only once at the first Form, On-Logon). It also goes to when calling the report caller.
    What is RAD?
    How can we use it?
    Is OID = Oracle Internet Directory?
    If true, maybe, I won't use it since I don't understand about it also.
    Why we don't have to specify the userid and password when Form calls Report1 (using Run_Report_Object and Web.Show_Document())?
    But we have to specify the userid and password when Report1 calls Report2.
    Any help is appreciated.
    Many thanks,
    Buntoro

  • Environment.Exit hangs when called from an application domain exception handler

    I've implemented a handler for exceptions not thrown in the main GUI thread of my C# WinForms application, as follows:
        AppDomain.CurrentDomain.UnhandledException  += OnUnhandledExceptionThrown;
    This handler is called from a background thread. The last statement in this handler is a call to
    Environment.Exit with the application exit code. However, the application hangs in this call. From within Visual Studio, it hangs and I'm unable to break the application; I have to use Task Manager to terminate Visual Studio. Environment.Exit
    works fine when called from the unhandled exception handler for the GUI thread. Is there a better way to terminate the application in the context of an unhandled exception thrown by a background thread?

    Are you just trying to avoid a crash? Environment.Exit can cause deadlocking if exiting in the wrong kind of scenario; if you're just trying to avoid a crash, use
    GetCurrentProcess with
    TerminateProcess to terminate your own process.  It skips the notification phases that Environment.Exit uses which prevents the common deadlock scenarios.
    WinSDK Support Team Blog: http://blogs.msdn.com/b/winsdk/

  • Setting some QoS params when calling stored procedures

    Hi All,
    Can I set some QoS params when calling a stored procedure like Timeout, Connection Timeout, Retry Count, etc?
    Thanks,
    Daniel

    Since anything between your client and your data can fail(including connectivity to the ALDSP server), we recommend that you exercise retries and timeouts from the client. If you attempt to implement retries and timeouts within the XQuery - you open up several cans of worms.(mentioned later) There is a Query Attribute (in RequestConfig) that you can use to specify a timeout on the query. And you can implement retries with a loop (for, while etc).
    If you use timeout/fail-over in your query - a number of things happen. First, if something happens outside your timeout or retry - you'll miss it (i.e. if someone unplugs one of your ALDSP servers, the fail-over in your xquery is not going to help). Second, adding timeout/fail-over function calls into your XQuery blocks query optimizations - if you put a fail-over around access to a CUSTOMER table in a database, the optimizer cannot combine that with an access to the ORDER table in the same database). Third, in ALDSP 2.5, the database connections within a query are cached, so if you have Oracle RAC, and one instance goes down - the fail-over function will fail-over to the same instance (unless you create a duplicate data source for the same RAC, but with a different name).
    ALDSP does not provide means to configure retries (like ALSB does).
    You can explicitly attempt to call a stored procedure mutliple times using the fn-bea:fail-over function.
    You can also retry (in case of timeout) by using the fn-bea:timeout function.
    Note that during a single query execution, if an instance of fail-over actually fails-over - it will not bother to evaluate the primary expression again during that query execution - it will simply evaluate the secondary expression. (The idea being that if a web service is down, then it will still be down a few milliseconds later). You can contact Customer Support if you need different functionality (there is a fail-over-retry function available in a patch).
    If you are calling a replicated web-service, you can implement round-robin in a web-service handler for that web service. Ask if you want an example.

  • Correct clipping when calling "paint()" from thread

    How do I achieve correct clipping around JMenus or JTooltips when calling paint() for a Component from a background thread?
    The whole story:
    Trying to implement some blinking GUI symbols (visualizing alerts), I implemented a subclass of JPanel which is linked to a Swing timer and thus receives periodic calls to its "actionPerformed()" methods.
    In the "actionPerformed()" method, the symbol's state is toggled and and repainting the object should be triggered.
    Unfortunately, "repaint()" has huge overhead (part of the background would need to be repainted, too) and I decided to call "paint( getGraphics() )" instead of it.
    This works fine as long as there is nothing (like a JMenu, a JComboBox or a JTooltip) hiding the symbol (partially or completely). In such case the call to paint() simply "overpaints" the object.
    I suppose setting a clipping region would help, but where from can I get it?
    Any help welcome! (I alread spent hours in search of a solution, but I still have no idea...)

    For all those interested in the topic:
    It seems as if there is no reliable way to do proper clipping when calling
    "paint()".
    The problem was that when my sub-component called "repaint()" for itself, the underlying component's "paintComponent()" method was called as well. Painting of that component was complex and avoiding complexity by restricting
    on the clipping region is not easily possible.
    I have several sub-components to be repainted regularly, resulting in lots of calls to my parent component's "paintComponent()" method. This makes the
    repainting of the sub-components awfully slow; the user can see each one begin painted!
    Finally I decided I had to speed up the update of the parent component. I found two possible solutions:
    a) Store the background of each of the sub-components in a BufferedImage:
    When "paintComponent()" is called: test, if the clipping rectangle solely
    contains the region of a sub-component. If this is true check if there
    is a "cached" BufferedImage for this region. If not, create one, filling
    it with the "real" "paintComponent()" method using the Graphic object of
    the BufferedImage. Once we have such a cached image, simply copy it the
    the screen (i.e. the Graphics object passed as method parameter).
    b) To avoid the handling of several of such "cached" image tiles, simply
    store the whole parent component's visible part ("computeVisibleRect()")
    in a BufferedImage. Take care to re-allocate/re-paint this image each
    time the visible part changes. (I need to restrict the image buffer to
    the visible part since I use a zooming feature: Storing the whole image
    would easily eat up all RAM!) In the "paintComponent()", simple check
    if the currently buffered image is still valid - repaint if not -
    and copy the requested part of it (clip rect) to the screen. That's it!
    The whole procedure works fine.
    Best regards,
    Armin

  • Java web start fails to launch application when java cache is off

    Hi,
    there's no problem when java cache is used but when java cache isn't used, my application fails to launch via jws (jnlp).
    the following is the error
    java.lang.NullPointerException
    at java.util.jar.JarVerifier.mapSignersToCodeSource(Unknown Source)
    at java.util.jar.JarVerifier.mapSignersToCodeSources(Unknown Source)
    at java.util.jar.JarVerifier.getCodeSources(Unknown Source)
    at java.util.jar.JarFile.getCodeSources(Unknown Source)
    at java.util.jar.JavaUtilJarAccessImpl.getCodeSources(Unknown Source)
    at com.sun.deploy.cache.DeployCacheJarAccessImpl.getCodeSources(Unknown Source)
    at com.sun.javaws.security.SigningInfo.getCommonCodeSignersForJar(Unknown Source)
    at com.sun.javaws.security.SigningInfo.check(Unknown Source)
    at com.sun.javaws.LaunchDownload.checkSignedResourcesHelper(Unknown Source)
    at com.sun.javaws.LaunchDownload.checkSignedResources(Unknown Source)
    at com.sun.javaws.Launcher.prepareResources(Unknown Source)
    at com.sun.javaws.Launcher.prepareAllResources(Unknown Source)
    at com.sun.javaws.Launcher.prepareToLaunch(Unknown Source)
    at com.sun.javaws.Launcher.prepareToLaunch(Unknown Source)
    at com.sun.javaws.Launcher.launch(Unknown Source)
    at com.sun.javaws.Main.launchApp(Unknown Source)
    at com.sun.javaws.Main.continueInSecureThread(Unknown Source)
    at com.sun.javaws.Main$1.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)
    this is the jnlp file
    <?xml version="1.0" encoding="UTF-8"?>
    <jnlp spec="1.0+" version="1.0" codebase="http://11.4.100.41" href="secuiNXG.jnlp">
    <information>
    <title>secuiNXG U start GUI</title>
    <vendor>secui.com Ltd.</vendor>
    <homepage href="/"/>
    <icon href="web_login_ci.gif"/>
    <shortcut online="true">
    <desktop/>
    <menu submenu="secuiNXG U"/>
    </shortcut>
    </information>
    <security>
    <all-permissions/>
    </security>
    <resources>
    <j2se version="1.4+" initial-heap-size="50m" max-heap-size="250m" />
    <jar href="SES.jar"/>
    <jar href="skin_alloy.jar"/>
    <jar href="Borders.jar"/>
    <jar href="informa.jar"/>
    <jar href="jaxen-1.1-beta-12.jar"/>
    <jar href="jcelements.jar"/>
    <jar href="jctable.jar"/>
    <jar href="jdom.jar"/>
    <jar href="log4j-1.2.14.jar"/>
    <jar href="jnlp.jar"/>
    <jar href="jxl.jar"/>
    </resources>
    <application-desc main-class="secui.firewall.SecuiLogin">
    <argument>11.4.100.41:80</argument>
    </application-desc>
    </jnlp>Test Environment
    JRE : 1.6.0_19
    O/S : Windows 7 (32 bit)
    Browser : IE8
    I checked for other versions of jre but not using java cache didn't cause any problems.
    I checked for the release note of update 19 but I have no clue.
    Is there any way to launch java application without using java cache?

    greencosmos wrote:
    ..I had a problem changing the cache location. The button for this action is disabled. I can't figure out how to enable it.On my system, it is enabled when the 'cache files' box is checked, and disabled when it isn't.
    1) Without changing the location I assumed that deleting the cached files could be a similar job, so I clicked "Delete Files..." and deleted with all checkboxes checked.I am not convinced that would entirely clear the cache, but have done no specific tests to check.
    2) I unchecked "Keep temporary files on my computer".So it was checked when you were trying to change the cache location?
    3) Applied all the changes.
    4) I launched your demo.
    Result - It was launched without any prompt.
    I revisited the page with the URL and successfully launched the app. again.The application launched just fine, but no prompt.
    If you follow those (links and) steps I outlined exactly, does the file service demo launch twice for you?I'm sorry I don't exactly understand your question. .. Your description is enough to convince me that answer is 'yes'.
    ..I tried twice and it launched twice, but not twice at the same time(it launched once at a time).Surprise, surprise. That is the first mention in this thread of 'same time'/'simultaneously'. Care to share the other defining factors that you forgot to mention, or is guessing part of the 'fun' of helping?
    But still I'm having problems with launching my application.
    I assume that it could be jnlp syntax problem. The "main=true" subelement is missing.It is a good idea to validate the launch files of JWS based launches that are failing for any reason. For that purpose, I offer JaNeLA.
    Having said that, a missing main='true' will not be detected by JaNeLA, since it is not a compulsory attribute. ..But check them anyway.

  • I can record voice memos fine using the built-in iPhone 4 mic.  And my Bluetooth headset (Jawbone Era) works fine when I leave messages on voice mail systems etc. when calling on the iPhone 4.  However, I cannot record voice memos with my Bluetooth mic.

    I can record voice memos fine using the built-in iPhone 4 mic.  And my Bluetooth headset (Jawbone Era) works fine when I leave messages on voice mail systems etc. when calling on the iPhone 4, so it appears my headset mic is fine.  I can also use voice activated dialing, although it fails miserably interpreting numbers.  However, I cannot record voice memos with my Bluetooth mic.   I just get barely audible static.  Any suggestions?   Thanks.

    Hello, did you ever get an answer to your question? I just picked up a Jawbone Era and using on an iPhone 4s running 5.0.1. Seems to work fine on regular calls, but not on the built in Voice memos application. It worked fine on my older Jawbone Icon, but haven't tested on the 4s or iOS 5.
    Thanks!

Maybe you are looking for

  • How to print 'booklet' on Officejet 4500 Wireless?

    The office I work in has just bought a new Officejet 4500 Wireless, but we are unsure how to print a booklet. With our old printer, the option came up once you hit print, but now it doesn't. Does anyone know how to print a booklet on this type of pri

  • Main Order TECO when Sub-Order is open

    Dear All, I just wanted to clarify if we can do TECO of Main Order when Sub-Order is open? If we can control this using any settings. Presently it is not allowing to do TECO of Main Order as long as Sub-Orders are open. Regards, MLN Prasad

  • Missing buttons on file panel

    Hi There, I have just switched from MX to 8 and am having trouble puting files to the server. When I go to Window, File, the file panel comes up with out the buttons to up load the files. When I click on the box to expand file, the butons show up but

  • Raw update CC

    for three days I tried to install the new Photoshop / After Effects / Bridge and Flash Raw update and after 8 attempts as following the instructions given by you guys on the site  Installing / Reinstalling I keep getting the same annoying error! the

  • Help getting Netgear wireless WNA1100 to work

    Trying to get OS X 10.4.1 to recognize the netgear wireless adapter.  I have the netgear installed but my MAC won't recognize it?   Is there a driver or something that I am missing?