Does SCAN redirect to node-IP or node-VIP?

I have a 2 node 11gR2 RAC cluster with both SCAN and node VIPs configured. Users connect to the SCAN address. The SCAN listener then redirects connections to the node listener. Does it redirect to the node listener via the node's address or the node's VIP address?
Here's why I'm asking. I'm trying to troubleshoot a recurring problem where node2's VIPs (scan and node-vip) keep failing over to node1 every few weeks. CRS logs on node1 say that it thinks (incorrectly) that node2 is inaccesible so it failed over both VIPs (scan and node-vip). Within a minute or so however, node1 can see node2 again without anyone intervening.
Node2 however remains up the entire time and is running normally. Neither the node listener, database instance, or ASM instance show any indication of a problem in their logs.
On node2's database instance however, all sessions have dropped even though the instance remained up. If the SCAN listeners redirect directly to node2, I would not expect this to happen and I can pin the problem down to some network component (switch, NIC, etc). If SCAN redirects to the node-VIP then I would expect this and need to troubleshoot why node1 is incorrectly thinking node2 went down.

Chuck1958 wrote:
Users connect to the SCAN address. The SCAN listener then redirects connections to the node listener. Does it redirect to the node listener via the node's address or the node's VIP address?That depends on
a) the service the user requests to be connected to
b) the registered hostnames of that service in the Listener
The SCAN listener is a remote listener, with which local listeners, register. The SCAN listener hands off/redirects connections based on what has been registered with it.
Also, a redirect is done using hostname and not dotted IP. Which means in exceptional circumstances, the client can use a hosts file with all static and virtual hostnames, referring to the same single (static or virtual) IP address.
Irrespective of what the SCAN Listener provides as hostname for the redirect, will in such a case be resolved, by the client, to the same IP address. Useful when troubleshooting, or when dealing with NAT firewalls.

Similar Messages

  • SCAN LISTENER runs from only one node at a time from /etc/hosts !

    Dear all ,
    Recently I have to configure RAC in oracle 11g(r2) in AIX 6.1 . Since in this moment it is not possible to configure DNS, so I dont use SCAN ip into the DNS/GNS, I just add the SCAN ip into the host file like :
    cat /etc/hosts
    SCAN 172.17.0.22
    Got the info from : http://www.freeoraclehelp.com/2011/12/scan-setup-for-oracle-11g-release211gr2.html#ORACLE11GR2RACINS
    After configuring all the steps of RAC , Every services are ok except SCAN_LISTENER . This listener is up only one node at a time . First time when I chek it from node1 , it shows :
    srvctl status scan_listener
    SCAN listener LISTENER_SCAN1 is enabled
    SCAN listener LISTENER_SCAN1 is running on node dcdbsvr1
    now when I relocate it from node 2 using
    "srvctl relocate scan -i 1-n DCDBSVR2" , then the output shows :
    srvctl status scan_listener
    SCAN listener LISTENER_SCAN1 is enabled
    SCAN listener LISTENER_SCAN1 is running on node dcdbsvr2
    Baring these , we have to try to relocate it from the node2 by the following way, then it shows the error :
    srvctl relocate scan -i 2 -n DCDBSVR2
    resource ora.scan2.vip does not exists
    Now my question , How can I run the SCAN and SCAN_LISTENER both of the NODES ?
    Here is my listener file (which is in the GRID home location) configuration :
    Listener File OF NODE1 AND NODE 2:
    ==================================
    ENABLE_GLOBAL_DYNAMIC_ENDPOINT_LISTENER_SCAN1=ON
    ENABLE_GLOBAL_DYNAMIC_ENDPOINT_LISTENER=ON
    LISTENER_SCAN1 =
    (DESCRIPTION =
    (ADDRESS = (PROTOCOL = IPC) (KEY = LISTENER_SCAN1)
    ADR_BASE_LISTENER_SCAN1 = /U01/APP/ORACLE
    2)
    Another issue , when I give the command : " ifconfig -a " , then it shows the SCAN ip either node1 or node2 . suppose if the SCAN ip is in the node1 , and then if I run the "relocate" command from node2 , the ip goes to the Node 2 . is it a correct situation ? advice plz ... ...
    thx in advance .. ...
    Edited by: shipon_97 on Jan 10, 2012 7:22 AM
    Edited by: shipon_97 on Jan 10, 2012 7:31 AM

    After configuring all the steps of RAC , Every services are ok except SCAN_LISTENER . This listener is up only one node at a time . First time when I chek it from node1 , it shows :If I am not wrong and after looking at the document you sent, you will be able to use only once scan in case you use /etc/host file and this will be up on only one node where you added this scan entry in /etc/hosts file.
    Now my question , How can I run the SCAN and SCAN_LISTENER both of the NODES ?Probably you can't in your case, you might run only one i think and on one node only
    srvctl status scan_listener
    SCAN listener LISTENER_SCAN1 is enabled
    SCAN listener LISTENER_SCAN1 is running on node dcdbsvr1
    now when I relocate it from node 2 using
    "srvctl relocate scan -i 1 -n DCDBSVR2" , then the output shows :
    srvctl status scan_listener
    SCAN listener LISTENER_SCAN1 is enabled
    SCAN listener LISTENER_SCAN1 is running on node dcdbsvr2You moved scan listener from node 1 to node 2, OK
    Baring these , we have to try to relocate it from the node2 by the following way, then it shows the error :
    srvctl relocate scan -i 2 -n DCDBSVR2
    resource ora.scan2.vip does not exists
    --------------------------------------------------------------------------------Since you have only one scan, you can't relocate "2". So ise "1" instead here also
    FYI
    http://www.oracle.com/technetwork/database/clustering/overview/scan-129069.pdf
    Salman

  • From where does exachk reads the list of stoage nodes that should be checked ?

    exachk automatic tries to check a storage node thats closed. From where does exachk reads the list of stoage nodes that should be checked ?

    Great! you found it and thanks for sharing the location. 
    Did you find it thought script or Google? 

  • Tree does not show node correctly but node are inserted well ?

    hi,
    i am haveing tree with
    1. Root node (grand parent (only one))
    2.Parent nodes(many nodes)
    3.child nodes(many nodes)
    i add child node in a particular parent node . this is done dynamically when socket thread found any any user .when socket listener thread found any user
    it add one user node (child node) in one of parent node
    when add child node some time tree view like this
    root
    |_ parent1
    |    |_ child1
    |    |_ child2
    |_ parent2  
    |    |_ child1
    |    |
    |    |
    |    |_child2
    |_ parent3
         |_child1
         _child2please have a look in parent 2 and parent 3. in parent 2 node just long gap
    between child nodes. But parent3 there is no line between childs.
    when a thread found an user on network , to add an node in tree i use
    treeModel.insertNodeInto(node, treenode, index);
            expandSelectedNode();But, this is generally happend when a node added by socket thread. So this i changed this section of code into EventQueu.invokeLater(); to do add by event queue thread. But it still come like this

    EventQueu.invokeLater();From where do you call this?
    We may need to see a small example code that can reproduce the problem.

  • How to set up SSO between e-portal employee node & ebill customer node?

    We have a requirement to set up SSO between e-portal employee node & ebill customer node.
    I am told that sso is possible only between 2 employee nodes.
    Please advise.

    Not sure I understand which part is failing.
    Is it the C program calling your packaged function? Or does the error occur in the PL/SQL code, in which case you should be able to pinpoint where it's wrong?
    A few comments :
    1) Using DOM to build XML out of relational data? What for? Use SQL/XML functions.
    2) Giving sample data is usually great, but it's not useful here since we can't run your code. We're missing the base tables.
    3) This is wrong :
    vStrSqlQuery := 'SELECT * FROM ' || vTblName                     || ' WHERE record_update_tms <= TO_DATE(''' || TO_CHAR(vLastPubTms, 'MM/DD/YYYY HH24:MI:SS') || ''', ''MM/DD/YYYY HH24:MI:SS'') ' ;
    A bind variable should be used here for the date.
    4) This is wrong :
    elmt_value := xmldom.createTextNode (doc, l_clob(1));
    createTextNode does not support CLOB so it will fail as soon as the CLOB you're trying to pass exceeds 32k.
    Maybe that's the problem you're referring to?
    5) This is most wrong :
         l_clob(1):=REPLACE(l_clob(1),'&lt;?xml version=&quot;1.0&quot;?&gt;', NULL); 
         l_clob(1):=REPLACE(l_clob(1),'&lt;', '<'); 
         l_clob(1):=REPLACE(l_clob(1),'&gt;', '>'); 
    I understand what you're trying to do but it's not the correct way.
    You're trying to convert a text() node representing XML in escaped form back to XML content.
    The problem is that there are other things to take care of besides just '&lt;' and '&gt;'.
    If you want to insert an XML node into an existing document, treat that as an XML node, not as a string.
    Anyway,
    Anyone that can help me to find out the required magic number
    That would be a bad idea. Fix what needs to be fixed.
    And please clearly state which part is failing : the C program or the PL/SQL code?
    I'd vote for PL/SQL, as pointed out in [4].

  • Installing 11gR1 CRS and receive error when executing root.sh on 2nd node of 2 node cluster

    This is the error from the execution of root.sh on 2nd node of 2 node RAC cluster:
    dhzusbx98: /u01/app/crs # ./root.sh
    WARNING: directory '/u01/app' is not owned by root
    Checking to see if Oracle CRS stack is already configured
    /etc/oracle does not exist. Creating it now.
    Setting the permissions on OCR backup directory
    Setting up Network socket directories
    PROT-1: Failed to initialize ocrconfig
    Failed to upgrade Oracle Cluster Registry configuration
    dhzusbx98: /u01/app/crs #
    This is what I find in the following log file:  /u01/app/crs/log/dhzusbx98/client\ocrconfig_6422692.log
    Oracle Database 11g CRS Release 11.1.0.6.0 - Production Copyright 1996, 2007 Ora                                                                                                             cle. All rights reserved.
    2015-02-11 11:21:07.384: [ OCRCONF][1]ocrconfig starts...
    2015-02-11 11:21:07.388: [ OCRCONF][1]Upgrading OCR data
    2015-02-11 11:21:07.455: [  OCROSD][1]utopen:7:failed to open OCR file/disk /dev                                                                                                             /lnkocrd01CC3 , errno=16, os err string=Device busy
    2015-02-11 11:21:07.465: [  OCRRAW][1]proprinit: Could not open raw device
    2015-02-11 11:21:07.465: [ default][1]a_init:7!: Backend init unsuccessful : [26                                                                                                             ]
    2015-02-11 11:21:07.467: [ OCRCONF][1]Exporting OCR data to [OCRUPGRADEFILE]
    2015-02-11 11:21:07.467: [  OCRAPI][1]a_init:7!: Backend init unsuccessful : [33                                                                                                             ]
    2015-02-11 11:21:07.467: [ OCRCONF][1]There was no previous version of OCR. erro                                                                                                             r:[PROC-33: Oracle Cluster Registry is not configured]
    2015-02-11 11:21:07.524: [  OCROSD][1]utopen:7:failed to open OCR file/disk /dev                                                                                                             /lnkocrd01CC3 , errno=16, os err string=Device busy
    2015-02-11 11:21:07.524: [  OCRRAW][1]proprinit: Could not open raw device
    2015-02-11 11:21:07.524: [ default][1]a_init:7!: Backend init unsuccessful : [26                                                                                                             ]
    2015-02-11 11:21:07.560: [  OCROSD][1]utopen:7:failed to open OCR file/disk /dev                                                                                                             /lnkocrd01CC3 , errno=16, os err string=Device busy
    2015-02-11 11:21:07.560: [  OCRRAW][1]proprinit: Could not open raw device
    2015-02-11 11:21:07.560: [  OCRAPI][1]a_init:6b!: Backend init unsuccessful : [2                                                                                                             6]
    2015-02-11 11:21:07.560: [ OCRCONF][1]Failed to initialized OCR context. error:[                                                                                                             PROC-26: Error while accessing the physical storage Operating System error [Devi                                                                                                             ce busy] [16]]
    2015-02-11 11:21:07.560: [ OCRCONF][1]Exiting [status=failed]...
    dhzusbx98: /u01/app/crs/log/dhzusbx98/client #
    dhzusbx98: /u01/app/crs/log/dhzusbx98/client #
    dhzusbx98: /u01/app/crs/log/dhzusbx98/client #
    dhzusbx98: /u01/app/crs/log/dhzusbx98/client # set -o vi
    dhzusbx98: /u01/app/crs/log/dhzusbx98/client # cat ocrconfig_6422692.log
    Oracle Database 11g CRS Release 11.1.0.6.0 - Production Copyright 1996, 2007 Oracle. All rights reserved.
    2015-02-11 11:21:07.384: [ OCRCONF][1]ocrconfig starts...
    2015-02-11 11:21:07.388: [ OCRCONF][1]Upgrading OCR data
    2015-02-11 11:21:07.455: [  OCROSD][1]utopen:7:failed to open OCR file/disk /dev/lnkocrd01CC3 , errno=16, os err string=Device busy
    2015-02-11 11:21:07.465: [  OCRRAW][1]proprinit: Could not open raw device
    2015-02-11 11:21:07.465: [ default][1]a_init:7!: Backend init unsuccessful : [26]
    2015-02-11 11:21:07.467: [ OCRCONF][1]Exporting OCR data to [OCRUPGRADEFILE]
    2015-02-11 11:21:07.467: [  OCRAPI][1]a_init:7!: Backend init unsuccessful : [33]
    2015-02-11 11:21:07.467: [ OCRCONF][1]There was no previous version of OCR. error:[PROC-33: Oracle Cluster Registry is not configured]
    2015-02-11 11:21:07.524: [  OCROSD][1]utopen:7:failed to open OCR file/disk /dev/lnkocrd01CC3 , errno=16, os err string=Device busy
    2015-02-11 11:21:07.524: [  OCRRAW][1]proprinit: Could not open raw device
    2015-02-11 11:21:07.524: [ default][1]a_init:7!: Backend init unsuccessful : [26]
    2015-02-11 11:21:07.560: [  OCROSD][1]utopen:7:failed to open OCR file/disk /dev/lnkocrd01CC3 , errno=16, os err string=Device busy
    2015-02-11 11:21:07.560: [  OCRRAW][1]proprinit: Could not open raw device
    2015-02-11 11:21:07.560: [  OCRAPI][1]a_init:6b!: Backend init unsuccessful : [26]
    2015-02-11 11:21:07.560: [ OCRCONF][1]Failed to initialized OCR context. error:[PROC-26: Error while accessing the physical storage Operating System error [Device busy] [16]]
    2015-02-11 11:21:07.560: [ OCRCONF][1]Exiting [status=failed]...
    dhzusbx98: /u01/app/crs/log/dhzusbx98/client # cat /etc/oracle/ocr.loc
    ocrconfig_loc=/dev/lnkocrd01CC3
    local_only=FALSE
    Can I just retry the root.sh on the 2nd node?  or, do I have to do some sort of cleanup and then retry?  Please advise....  Thanks, Adolfo

    Are you using raw disk devices for Oracle 11g RAC? You might want to move to ASM. For starters, your version, 11.1 is no longer fully supported by Oracle Corp. You'll need to be on 11.2.0.3 or higher to be supported. The 11.2.0.3 version loses Extended Support in August I think. The 11.2.0.4 version loses Extended Support in January. All of this means your production Oracle RAC database should be on the 12c version by January. And guess what? Oracle 12c RAC does not support raw disk devices.
    Since you're starting with this cluster fresh, why not aim for a configuration that will allow you to go forth into the foreseeable future without major configuration changes?
    Cheers,
    Brian

  • When we create  one service as preferred on both nodes in  two node RAC

    How to configure listener,tnsnames.ora & listener file When we create one service as preferred on both nodes in two node RAC ... ( I don't need load balancing here but i just want to create service as preferred on both nodes)
    please some one help me in this ..

    Thanks alot Sebastain for your reply..
    I am using 10.2.0.4 version and below tns entry is from my client side tns entry ..
    M4AMPRD_TEST=
    (DESCRIPTION=
    (ADDRESS= (PROTOCOL=TCP) (HOST=153.88.184.228) (PORT=1521))
    (ADDRESS= (PROTOCOL=TCP) (HOST=153.88.184.229) (PORT=1521))
    (FAILOVER=ON)
    (CONNECT_DATA=(SERVICE_NAME=M4AMPRD_TEST)
    (FAILOVER_MODE=
    (TYPE=SELECT)
    (METHOD=BASIC)
    (RETRIES=20)
    (DELAY=5)
    service creation: srvctl add service -d M4AMPRD -s M4AMPRD_TEST -r M4AMPRD1,M4AMPRD2
    But when i connect to database usign above service from client some times its working fine and some times its failing please see below log with timings how it is behaving ..
    SQL> set time on
    18:39:46 SQL> CONN m4owner/iamm4amdev!@M4AMPRD_TEST
    Connected.
    18:39:48 SQL> CONN m4owner/iamm4amdev!@M4AMPRD_TEST
    ERROR:
    ORA-12545: Connect failed because target host or object does not exist
    Warning: You are no longer connected to ORACLE.
    18:39:52 SQL> CONN m4owner/iamm4amdev!@M4AMPRD_TEST
    Connected.
    18:39:53 SQL> CONN m4owner/iamm4amdev!@M4AMPRD_TEST
    Connected.
    18:39:55 SQL> CONN m4owner/iamm4amdev!@M4AMPRD_TEST
    Connected.
    18:39:57 SQL> CONN m4owner/iamm4amdev!@M4AMPRD_TEST
    ERROR:
    ORA-12545: Connect failed because target host or object does not exist
    Warning: You are no longer connected to ORACLE.
    18:39:59 SQL> CONN m4owner/iamm4amdev!@M4AMPRD_TEST
    Connected.
    Thanks for your help in advance
    Anil Vejendla..

  • How to Transper data Model Node to Vallue Node

    Hi Friends
    I am getting problem in Create the Check box in Table
    I am getting model node from ECC System(Zmmoa_Pending_Getlist_Input)
    This is path for attributes avaliable
    Zmmoa_Pending_Getlist_Input-Output-outtab 
    Under outtab  all attributes available
    My Requrement is display Check box. So I am doing like this I will care one more Vallue Node (OutTab_1) under this Vallue Node I put I have node attributes.here I careate one Check boxdatatype --Boolean(i.e Under outtab attributes)
    Now I will get data from ModelNode and send that data to Vallue Node(by this node that data display in table formate.Eache Row Having Check box)
    So I have to this Code But Data is Not getting in Vallunode table
    in FirstView
    in Submit Button
    public void onActionGetData(com.sap.tc.webdynpro.progmodel.api.IWDCustomEvent wdEvent )
        //@@begin onActionGetData(ServerEvent)
        //$$begin ActionButton(1164287125)
        //wdThis.wdGetExamp2CompController().checkSRA();
         wdThis.wdGetExamp2CompController().checkBox();
        wdThis.wdFirePlugToSV();
        //$$end
        //@@end
    This is code writen in CC
    public void checkBox( )
        //@@begin checkBox()
        //Date today = new Date(System.currentTimeMillis());
        IWDMessageManager mes = wdComponentAPI.getMessageManager();
        try
             Zmmoa_Pending_Getlist_Input input1 = new Zmmoa_Pending_Getlist_Input();
             wdContext.nodeZmmoa_Pending_Getlist_Input().bind(input1);        
              wdContext.currentZmmoa_Pending_Getlist_InputElement().modelObject().execute();
              wdContext.nodeOuttab().invalidate();
    //          IPrivateExamp2Comp.IOutTab_1Element elem = wdContext.nodeOutTab_1().getOutTab_1ElementAt(i);         
             //mes.reportSuccess("Input:" +wdContext.nodeOuttab().size());
                      for (int i =0; i < wdContext.nodeOuttab().size(); i++)
                   //mes.reportSuccess("Input Of I:" +wdContext.nodeOutput().size());
                   //mes.reportSuccess("Input:" );
                   IPrivateExamp2Comp.IOuttabElement  elem = wdContext.nodeOuttab().getOuttabElementAt(i);
                   //wdComponentAPI.getMessageManager().reportSuccess("elem::  "+elem);
                   IPrivateExamp2Comp.IOutTab_1Element result = wdContext.nodeOutTab_1().createOutTab_1Element();
             //Zbapiresult result = new Zbapiresult();
             result.setCheckBox(false);
             result.setConf_Shp_Date(elem.getConf_Shp_Date());        
              wdComponentAPI.getMessageManager().reportSuccess("Conf_Shp_Date::  "+elem.getConf_Shp_Date());
             result.setExpt_Shp_Date(elem.getExpt_Shp_Date());
             result.setMaterial(elem.getMaterial());
             result.setMatl_Desc(elem.getMatl_Desc());
             result.setOa_Quantity(elem.getOa_Quantity());
             result.setOpn_Quantity(elem.getOpn_Quantity());
             result.setPo_Item(elem.getPo_Item());
             result.setPo_Number(elem.getPo_Number());
             result.setPo_Status(elem.getPo_Status());
             result.setPur_Group(elem.getPur_Group());
             result.setStat_Date(elem.getStat_Date());
             result.setQuantity(elem.getQuantity());
             wdContext.nodeOutTab_1().addElement(result);
         catch(Exception e)
                   mes.reportException(e.getMessage(), false);
        //@@end
    can u help me
    how to Transper data Model Node to Vallue Node. By using vallue node that data will display in table format with Check box.
    I need data display in table format with Check box
    Regards
    Vijay Kalluri

    Hi Vijay,
    TO copy values from Model Node to Value Node use the copyElements() method of the WDCopyService API. To acheive this, the name and type of the attibutes in the Value Node should be same as Model node attributes.
    Example: -
    Model Node <----
    > Value node
    ---Name-String                                       ---Name - String
    ---Number-Integer                                  ---Number -  Integer.
    then use the following statement:
    WDCopyService.copyElements(wdContext.node<ModelNode>(),wdContext.node<ValueNode>());
    This will copy all the values.
    Regards,
    Poojith MV

  • Error converting DOM nodes into SOAP nodes

    Hi,
    i am doing an http call using http binding activity in oracle soa suite 11g.The http call requires some header information.When I pass the header information through headers in invoke activity and invoke the http call,I get an error " Error converting DOM nodes into SOAP nodes".What might be the reason and how to solve it.
    Naresh

    Hello,
    It appears your code is trying to repeat messagePart itself. Split Joins strictly adheres to a WSDL definition for incoming and outgoing messages.
    Instead of repeating <RootElement> which is defined as single occurance in your message definition within WSDL, you should find a way to tweak the WSDL to have "repetitive node which will become single message after split" within 1 Root element.
    This will call for having need of implementing transformation within split join based on need of target input message. Below is the example:
    WSDL contains:
    <wsdl:message name="inputMessageName">
         <wsdl:part name="partInput" element="rootElement"/>
    </wsdl:message>
    What your current xml structure is(please note how message itself is repeating below while it has been defined as single in wsdl, unfortunately there is nothing maxOccurs for message in WSDL definition , although you can define multiple parts but that is not case here):
    <soap:Body>
    <rootElement>
    </rootElement>
    <rootElement>
    </rootElement>
    <rootElement>
    </rootElement>
    </soap:Body>
    What Split-Join expects(If you have existing wsdl then you need to tweak it to conform to below kind of structure then use transformation within split join to convert it into correct xml structure for outgoing):
    <soap:Body>
    <rootElement>
         <repetitiveElementSpecificToIndividualSplitRequest/>
         <repetitiveElementSpecificToIndividualSplitRequest/>
         <repetitiveElementSpecificToIndividualSplitRequest/>
    </rootElement>
    </soap:Body>
    I hope this helps.
    Regards,
    Ankit

  • Move the concurrent services from db node to apps node

    Node 1 - DB Node (HP UX PA RISC)
    DB, RDBMS (9.2.0.5), Concurrent, Reports, Admin
    Node 2- Apps Node (Red Hat Linux 4)
    Web, Forms. (11.5.9)
    Need to move the concurrent, reports and admin services from db node to apps node.
    Just a pre-clone and a post clone is not working in this scenario. Any other suggestions?

    I am going to proceed with the below on our environment , not sure if its supported.
    Please let me know your comments ?
    Current Architecture
    ====================
    Node A: DB , Admin, CM and Reports
    Node B: Forms and Web
    Required Architecture
    =====================
    Node A: DB (Only)
    Node B: Forms, Web , Admin, CM and Reports
    Steps
    ======
    1. Bring down the Application services from Node B and Node A
    2. Take Backup of context file on Node B.
    Edit context file on Node B
    s_isAdmin from "NO" to "YES"
    s_isConc from "NO" to "YES"
    s_isConcDev from "NO" to "YES"
    s_concstatus from "disabled" to "enabled"
    s_reptstatus from "disabled" to "enabled"
    3. Run autoconfig on Node B
    4. Check status in FND_NODES
    select node_name, node_mode, support_cp,support_web, support_admin, support_forms from FND_NODES;
    If the output does not reflect the correct assignements
    Do Node cleanup and run autoconfig
    EXEC FND_CONC_CLONE.SETUP_CLEAN;
    Check status in FND_NODES
    5. Start Apps Tier Services on Node B.
    Thanks

  • JtreeTable - Nodes update issue - Nodes are cut off

    Hi,
    I'vet got a little problem with the JtreeTable. Everything works fine until I try to change the rendering of a row to BOLD.
    The text turns bold, but the TreeNode (first col in row) is cut off because it was first rendered plain and now its to big to be
    displayed.
    I tried
    tree.getModel().valueForPathChanged(new TreePath(node.getPath()), myNewValue);but beacuse value doesn't change (text stays just font changes) there is no need to fireNodesChanged.

    Here's one I put together. Select any node, and any other node with text that begins with the same letter is rendered in bold. From my test, it looks like repaint on the tree isn't sufficient. However, firing node changed events seem to be working (as a quick and dirty measure, I fire node changed on every node each time). Now I have to go back and revisit the problem I originally had and see what I was doing there.
    import java.awt.BorderLayout;
    import java.awt.FlowLayout;
    import javax.swing.*;
    import javax.swing.event.TreeSelectionEvent;
    import javax.swing.event.TreeSelectionListener;
    import javax.swing.tree.*;
    public class BoldTreeCellTest {
         public static void main(String[] args) {
              SwingUtilities.invokeLater(new Runnable() {
                   public void run() {
                        launchUI();
         private static void launchUI() {
              final DefaultMutableTreeNode[] nodes = new DefaultMutableTreeNode[5];
              JFrame frame = new JFrame("Test JTree With Bold Rendering");
              nodes[0] = new DefaultMutableTreeNode("root of the tree here");
              nodes[1] = new DefaultMutableTreeNode("Every cell which has the");
              nodes[2] = new DefaultMutableTreeNode("same first character as the");
              nodes[3] = new DefaultMutableTreeNode("selected cell text will have it's text");
              nodes[4] = new DefaultMutableTreeNode("rendered in bold.");
              for (int i=1; i<nodes.length; i++) {
                   nodes[0].add(nodes);
              final DefaultTreeModel model = new DefaultTreeModel(nodes[0]);
              final JTree tree = new JTree(model);
              final JRadioButton useRepaintButton = new JRadioButton("Repaint Tree", true);
              final JRadioButton useNodesChangedButton = new JRadioButton("Fire Nodes Changed");
              ButtonGroup buttonGroup = new ButtonGroup();
              buttonGroup.add(useRepaintButton);
              buttonGroup.add(useNodesChangedButton);
              tree.getSelectionModel().addTreeSelectionListener(new TreeSelectionListener() {
                   @Override
                   public void valueChanged(TreeSelectionEvent event) {
                        if (useRepaintButton.isSelected()) {
                             tree.repaint();
                        } else {
                             model.nodeChanged(nodes[0]);
                             model.nodesChanged(nodes[0], new int[] {0, 1, 2, 3});
              tree.setCellRenderer(new BoldTreeCellRenderer());
              JScrollPane pane = new JScrollPane(tree);
              JPanel panel = new JPanel(new BorderLayout());
              JPanel buttonPanel = new JPanel(new FlowLayout());
              buttonPanel.add(useRepaintButton);
              buttonPanel.add(useNodesChangedButton);
              panel.add(buttonPanel, BorderLayout.NORTH);
              panel.add(pane, BorderLayout.CENTER);
              frame.setContentPane(panel);
              frame.pack();
              frame.setLocationRelativeTo(null);
              frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
              frame.setVisible(true);
    import java.awt.Component;
    import java.awt.Font;
    import javax.swing.JLabel;
    import javax.swing.JTree;
    import javax.swing.tree.DefaultMutableTreeNode;
    import javax.swing.tree.DefaultTreeCellRenderer;
    import javax.swing.tree.TreePath;
    public class BoldTreeCellRenderer extends DefaultTreeCellRenderer {
         private Font plainFont;
         private Font boldFont;
         public BoldTreeCellRenderer() {
              super();
              Font baseFont = (new JLabel()).getFont();
              this.plainFont = baseFont.deriveFont(Font.PLAIN);
              this.boldFont = baseFont.deriveFont(Font.BOLD);
         @Override
         public Component getTreeCellRendererComponent(JTree tree, Object value,
                   boolean selected, boolean expanded, boolean leaf, int row, boolean hasFocus) {
              super.getTreeCellRendererComponent(tree, value, selected, expanded, leaf, row, hasFocus);
              String st = (String) ((DefaultMutableTreeNode) value).getUserObject();
              Font font = this.plainFont;
              TreePath selectionPath = tree.getSelectionPath();
              if (selectionPath != null) {
                   String selectedText = (String) ((DefaultMutableTreeNode) selectionPath.getLastPathComponent()).getUserObject();
                   if (st.startsWith(selectedText.substring(0, 1))) {
                        font = this.boldFont;
              setFont(font);
              return this;
    Edited by: Skotty on Aug 12, 2010 2:02 PM
    Edited by: Skotty on Aug 12, 2010 2:05 PM - set useRepaintButton as selected on start                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               

  • Converting 8 node to 4 node caused CLUSTER waits

    Hi,
    We had an 8 node 10.2.0.3 cluster which was working fine. For some reasons, we reinstalled the cluster with 4 nodes (fresh OSs, but everything was same). we mounted the previous asm diskgroups with the new cluster. Everything seems to be working fine, except we have lots of waits on cluster class, mostly gc cr block busy. Does anyone have any idea about that?
    thanks

    AWR says a few sql statements causing the cluster waits, but these are not new queries. On the 8 node cluster we had the same sql queries, but we rarely had CLUSTER waits.Not Sure about nodes to 4 nodes.
    But I think we need to investigate and improve from that query before.
    check Top 5 Timed Events, Wait Events, objects, indexes , gather stats, block size and etc...
    Good Luck

  • Invalidate concept for value node and model node

    Hello everybody,
    We have invalidate method for value node and model node.
    I want to know basic concept behind this method.
    What this method acually does?
    Regards,
    Bhavik

    Hi Pran and all,
    I figured out the problem. Input parameters are going multple times. So, depending upon that it gives multiple values.
    My scenario is:
    Root Node
    |_ Input_node1
         |_Attr1
    |_ Input_Node2
         |_Attr2
    |_Output_node
         |_Result
    I am passing values in Attr1 and Attr2 attributes.
    For this, first of all, i wrote following code.
    In controller, i have initialized Root node:
    Root_Node model = new Root_Node();
    wdcontext.nodeRoot_Node().bind(model);
    In view, I set values for attr1 and attr2 using following code:
    Ipublic<View>.IInput_node1Element ele = wdcontext.createInput_node1Element();
    ele.setAttr1("<value>");
    wdcontext.nodeInput_node1().addElement(ele);
    Ipublic<View>.IInput_node2Element ele1 = wdcontext.createInput_node2Element();
    ele1.setAttr2("<value>");
    wdcontext.nodeInput_node2().addElement(ele);
    But this code didnt work. Model was executed without data in this case.
    So, i thought that these elements were created at view level only. And corresponding model objects were not created.
    So, I have changed code like following way:
    I have removed initialization code for Input_Node1 and Input_Node2 from view. Now, I am getting input values in two different value nodes. And before calling custom controller's method to execute model, I am making two ArrayLists and filling data in it. Now, i am passing these ArrayList objects as parameters to controller's method.
    In this method, i am setting both values as follows:
    wdcontext.currentRoot_NodeElement().modelObject().setInput_Node1(List1); 
    wdcontext.currentRoot_NodeElement().modelObject().setInput_Node2(List2); 
    Then i am executing my model.
    But, When i am setting values for Input_Node1 and Input_Node2 as shown above, values are appended instead of overwritting the value. Because of this appended values, it gives mupltiple results.
    Means, Both ways are not proper. What should be the proper and best way to pass values in this case?
    Thanks,
    Bhavik

  • How to populate a Value Attribute of a Value Node inside Model Node

    Hello
    I have my context like this.
      Context
    ..          - ModelNode
    ....                      - Model Attr1
    ....                      - Model Attr2
    ....                      - Model Attr3
    ....                      - Model Attr4
    ....                      - Value Node
    ......                                  |
    ......                                   - Value Attr1
    Model Node is of Cardinality 0..N
    Value Node is of Cardinality 1..1
    I want to create multiple records in my Model Node and one record for every Model Node in Value Node.
    How to do this?
    All good suggestions are welcome.
    Regards,
    Shubham

    Hi Shubham,
    With your context structure the code will be
    for(int i = wdContext.nodeModelNode().size()-1 ; i>=0 ; i--)
        IPublic<comp name>.IModelNodeElement ele =   wdContext.nodeModelNode().getModelNodeElementAt(i);
        IPublic<comp name>.IValNodeElement valEle = wdContext.nodeModelNode().nodeValNode().createValNodeElement();
        valele.setValAttr("");
        ele.nodeValNode().addElement( valEle);
    Your val node should be non singleton (singleton property = false)
    Regards,
    Jaydeep

  • How can i add a file name(the text of the file name) as a child node to existing node in a treeView1 ?

    bool exists = false;
    TreeNode newNodeParsed = null;
    TreeNode rootNode = treeViewMS1.Nodes[0];
    TreeNode nextNode = rootNode;
    string f = Path.GetFileName(txtUploadFile.Text);
    TreeNode subnode = new TreeNode(txtDir.Text);
    TreeNode filename = new TreeNode(f);
    if (!txtDir.Text.Contains("/"))
    foreach (TreeNode node in rootNode.Nodes)
    if (node.Text == txtDir.Text)
    exists = true;
    break;
    if (exists == true)
    subnode.Nodes.Add(f);
    else
    rootNode.Nodes.Add(subnode);
    subnode.Nodes.Add(f);
    The rootNode is the root directory in the treeView1
    subnode is a node inside the root. For example the subnode name is manuelisback
    I'm checking if the subnode exist i want to add the file for example (lightning1.jpg) to be under subnode.
    If the subnode is not existing add the subnode to the root and then add the file name lightning1.jpg under the subnode.
    But the file name is never added under the subnode:
    I added manualy the lightning1.jpg under test.
    But the lightning1.jpg also should be added to be under manuelisback. There should be two lightning1.jpg here.
    One under manuelisback and one under test. The one under test i added manualy from my ftp server.
    But the one i want to be under manuelisback i'm trying to add from my program and it dosen't add it to there.
    And when i'm using a breakpoint i see on subnode the text manuelisback and i see on f the text lightning1.jpg

    If I understand your question correctly, you might want to try changing:
    if (!txtDir.Text.Contains("/"))
    foreach (TreeNode node in rootNode.Nodes)
    if (node.Text == txtDir.Text)
    exists = true;
    break;
    if (exists == true)
    subnode.Nodes.Add(f);
    else
    rootNode.Nodes.Add(subnode);
    subnode.Nodes.Add(f);
    to something like:
    if (!txtDir.Text.Contains("/"))
    foreach (TreeNode node in rootNode.Nodes)
    if (node.Text == txtDir.Text)
    subnode = node;
    exists = true;
    break;
    if (exists == true)
    subnode.Nodes.Add(f);
    else
    rootNode.Nodes.Add(subnode);
    subnode.Nodes.Add(f);
    rootNode.Nodes.Add(f);
    It would be greatly appreciated if you would mark any helpful entries as helpful and if the entry answers your question, please mark it with the Answer link.

Maybe you are looking for