What need to do if one node is down?

Hi:
We have 11.5.10.2 on unix with two apps tier node1 and node2 with load balancing. Now one of them, node2 is down. What should i do? node1 and node2 all have concurrent manager, form, http.
Thanks.

We have 11.5.10.2 on unix with two apps tier node1 and node2 with load balancing. Now one of them, node2 is down. What should i do? node1 and node2 all have concurrent manager, form, http. Fix the node that went down!
If your load balancer and PCP is setup correctly, then node1 should handle all the requests until you have node2 up again.
Thanks,
Hussein

Similar Messages

  • Failover did not happen when one node went down!!! PLEASE HELP

    Hi gurus,
    Yesterday one disaster struck my RAC database. We have two node cluster and it is 10.2.0.2, both of them located in different sites, yesterday suddenly power went down and the one of the network switch went down and got destructed, node one of RAC database was connected to that switch, but the failover did not happen to the node two as this should be the case when one node goes down the other should be available for all the node one sessions/connections.
    when I tried to ping/telnet the node 1, it was not happening because the switch was down, the network guyz connected the cables to other switch available. When I connected to the node 1, it was showing "Oracle is not available" message.
    And when I tried the other node, it was the same case but I did not see any error in alert log file. Then my TL restarted both the nodes and then the database was available.
    I am very confused that how the failover did not happen and how the database went down, PLEASE suggest something to how to identifiy what was happened. Thanks & Regards

    Thanks for your reply,
    after the network switch was replaced we connected to both the nodes and found that the instances are down with no reason given in the Alertlog file. We just restarted both the instances and then the database was up and the clients connected to both the instances with equal sessions on both the instances. I want to know that whether the failover can be done at the application side or it should be done on the database side i,e; in tnsnames.ora file with the required parameters? as in our scenario there is no failover configuration in the tnsnames.ora file.
    Thanks & Regards

  • JMS Uniform Distribute Queue Unit Of Order, problem when one node goes down

    Hi ,
    I have the following code which post a message (with Unit of Order set ) to a Uniform Distribute Queue in a cluster with two member servers (server1 and server2).
    --UDQ is targeted to a subdeployment that is mapped to two JMS servers pointing to each member servers
    --Connection Factory is using default targeting ( i tried mapping to Sub deployment also)
    javax.naming.InitialContext serverContext = new javax.naming.InitialContext();
    javax.jms.QueueConnectionFactory qConnFactory = (javax.jms.QueueConnectionFactory)serverContext.lookup(jmsQConnFactoryName);
    javax.jms.QueueConnection qConn = (javax.jms.QueueConnection)qConnFactory.createConnection();
    javax.jms.QueueSession qSession = qConn.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);
    javax.jms.Queue q = ( javax.jms.Queue)serverContext.lookup(jmsQName);
    weblogic.jms.extensions.WLMessageProducer qSender = (weblogic.jms.extensions.WLMessageProducer) qSession.createProducer(q);
    qSender.setUnitOfOrder("MyUnitOfOrder");
    javax.jms.ObjectMessage message = qSession.createObjectMessage();
    HashMap<String, Object> map = new HashMap<String, Object>();
    map.put("something", "SomeObject");
    message.setObject(map);
    qSender.send(message);
    } catch (Exception e) {           
    Steps followed:
    1. Post a message from "server1"
    2. Message picked up by "server2"
    3. Everything fine
    4. Shutdown "server2"
    5. Post a message from "server1"
    6. ERROR: "hashed member of MyAppJMSModule!MyDistributedQ is MyAppJMSModule!MyJMSServer-2@MyDistributedQ which is not available"
    WebLogic version : 10.3.5
    Is there a way (other than configuring Path Service ) to make this code work "with unit of order" for a UDQ even if some member servers go down ?
    Thanks very much for your time.

    If you want to avoid use of the Path Service, then the alternative is to make the destination members highly available. This will help ensure that the host member for a particular UOO is up.
    One approach to HA is to configure "service migration". For more information see the Automatic Service Migration white-paper at
    http://www.oracle.com/technology/products/weblogic/pdf/weblogic-automatic-service-migration-whitepaper.pdf
    In addition, I recommend referencing Best Practices for JMS Beginners and Advanced Users
    http://docs.oracle.com/cd/E17904_01/web.1111/e13738/best_practice.htm#JMSAD455 to help with WL configuration in general.
    Hope this helps,
    Tom

  • SC 3.2 Solaris 10 x86. When one node reboot, the other one does also

    Configured a two node cluster with a EMC clariion san (Raid 6) for holding a zpool and use as quorum device.
    When one node goes down, the other one does also.
    There seems a problem with the quorum.
    I can not understand or figure out what actually goes wrong.
    When starting up:
    Booting as part of a cluster
    NOTICE: CMM: Node cnode01 (nodeid = 1) with votecount = 1 added.
    NOTICE: CMM: Node cnode02 (nodeid = 2) with votecount = 1 added.
    NOTICE: CMM: Quorum device 1 (/dev/did/rdsk/d1s2) added; votecount = 1, bitmask of nodes with configured paths = 0x3.
    NOTICE: clcomm: Adapter nge3 constructed
    NOTICE: clcomm: Adapter nge2 constructed
    NOTICE: CMM: Node cnode01: attempting to join cluster.
    NOTICE: nge3: link down
    NOTICE: nge2: link down
    NOTICE: nge3: link up 1000Mbps Full-Duplex
    NOTICE: nge2: link up 1000Mbps Full-Duplex
    NOTICE: nge3: link down
    NOTICE: nge2: link down
    NOTICE: nge3: link up 1000Mbps Full-Duplex
    NOTICE: nge2: link up 1000Mbps Full-Duplex
    NOTICE: CMM: Node cnode02 (nodeid: 2, incarnation #: 1248284052) has become reachable.
    NOTICE: clcomm: Path cnode01:nge2 - cnode02:nge2 online
    NOTICE: clcomm: Path cnode01:nge3 - cnode02:nge3 online
    NOTICE: CMM: Cluster has reached quorum.
    NOTICE: CMM: Node cnode01 (nodeid = 1) is up; new incarnation number = 1248284001.
    NOTICE: CMM: Node cnode02 (nodeid = 2) is up; new incarnation number = 1248284052.
    NOTICE: CMM: Cluster members: cnode01 cnode02.
    NOTICE: CMM: node econfiguration #1 completed.
    NOTICE: CMM: Node cnode01: joined cluster.
    ip: joining multicasts failed (18) on clprivnet0 - will use link layer broadcasts for multicast
    /dev/rdsk/c2t0d0s5 is clean
    Reading ZFS config: done.
    obtaining access to all attached disks
    cnode01 console login:
    Then this on the second node:
    Booting as part of a cluster
    NOTICE: CMM: Node cnode01 (nodeid = 1) with votecount = 1
    NOTICE: CMM: Node cnode02 (nodeid = 2) with votecount = 1
    NOTICE: CMM: Quorum device 1 (/dev/did/rdsk/d1s2) added; votecount = 1, bitmask of nodes with configured paths = 0x3.
    NOTICE: clcomm: Adapter nge3 constructed
    NOTICE: clcomm: Adapter nge2 constructed
    NOTICE: CMM: Node cnode02: attempting to join cluster.
    NOTICE: CMM: Node cnode01 (nodeid: 1, incarnation #: 1248284001) has become reachable.
    NOTICE: clcomm: Path cnode02:nge2 - cnode01:nge2 online
    NOTICE: clcomm: Path cnode02:nge3 - cnode01:nge3 online
    WARNING: CMM: Issuing a NULL Preempt failed on quorum device /dev/did/rdsk/d1s2 with error 2.
    NOTICE: CMM: Cluster has reached quorum.ion ratio 4.77, dump succeeded
    NOTICE: CMM: Node cnode01 (nodeid = 1) is up; new incarnation number = 1248284001.
    NOTICE: CMM: Node cnode02 (nodeid = 2) is up; new incarnation number = 1248284052.
    NOTICE: CMM: Cluster members: cnode01 cnode02.
    NOTICE: CMM: node reconfiguration #1 completed.
    NOTICE: CMM: Node cnode02: joined cluster.
    NOTICE: CCR: Waiting for repository synchronization to finish.
    *{color:#ff0000}WARNING: CMM: Issuing a NULL Preempt failed on quorum device /dev/did/rdsk/d1s2 with error 2.{color}*
    ip: joining multicasts failed (18) on clprivnet0 - will use link layer broadcasts for multicast
    /dev/rdsk/c2t0d0s5 is clean
    Reading ZFS config: done.
    obtaining access to all attached disks
    cnode02 console login:
    But when the first node reboot, on the second node this message:
    Jul 22 19:24:48 cnode02 genunix: [ID 936769 kern.info] devinfo0 is /pseudo/devinfo@0
    Jul 22 19:30:57 cnode02 nge: [ID 812601 kern.notice] NOTICE: nge3: link down
    Jul 22 19:30:57 cnode02 nge: [ID 812601 kern.notice] NOTICE: nge2: link down
    Jul 22 19:30:59 cnode02 nge: [ID 812601 kern.notice] NOTICE: nge3: link up 1000Mbps Full-Duplex
    Jul 22 19:31:00 cnode02 nge: [ID 812601 kern.notice] NOTICE: nge2: link up 1000Mbps Full-Duplex
    Jul 22 19:31:06 cnode02 genunix: [ID 489438 kern.notice] NOTICE: clcomm: Path cnode02:nge2 - cnode01:nge2 being drained
    {color:#ff0000}Jul 22 19:31:06 cnode02 scsi_vhci: [ID 734749 kern.warning] WARNING: vhci_scsi_reset 0x0{color}
    Jul 22 19:31:06 cnode02 genunix: [ID 489438 kern.notice] NOTICE: clcomm: Path cnode02:nge3 - cnode01:nge3 being drained
    Jul 22 19:31:11 cnode02 nge: [ID 812601 kern.notice] NOTICE: nge3: link down
    {color:#ff0000}Jul 22 19:31:12 cnode02 genunix: [ID 414208 kern.warning] WARNING: QUORUM_GENERIC: quorum preempt error in CMM: Error 5 --- QUORUM_GENERIC Tkown ioctl failed on quorum device /dev/did/rdsk/d1s2.{color}
    {color:#ff0000}Jul 22 19:31:12 cnode02 cl_dlpitrans: [ID 624622 kern.notice] Notifying cluster that this node is panicking
    Jul 22 19:31:12 cnode02 unix: [ID 836849 kern.notice]
    Jul 22 19:31:12 cnode02 ^Mpanic[cpu3]/thread=ffffffff8b5c06e0:
    Jul 22 19:31:12 cnode02 genunix: [ID 265925 kern.notice] CMM: Cluster lost operational quorum; aborting.{color}
    Jul 22 19:31:12 cnode02 unix: [ID 100000 kern.notice]
    Jul 22 19:31:12 cnode02 genunix: [ID 655072 kern.notice] fffffe8002651b40 genunix:vcmn_err+13 ()
    Jul 22 19:31:12 cnode02 genunix: [ID 655072 kern.notice] fffffe8002651b50 cl_runtime:__1cZsc_syslog_msg_log_no_args6FpviipkcpnR__va_list_element__nZsc_syslog_msg_status_enum__+24 ()
    Jul 22 19:31:12 cnode02 genunix: [ID 655072 kern.notice] fffffe8002651c30 cl_runtime:__1cCosNsc_syslog_msgDlog6MiipkcE_nZsc_syslog_msg_status_enum__+9d ()
    Jul 22 19:31:12 cnode02 genunix: [ID 655072 kern.notice] fffffe8002651e20 cl_haci:__1cOautomaton_implbAstate_machine_qcheck_state6M_nVcmm_automaton_event_t__+3bc ()
    Jul 22 19:31:12 cnode02 genunix: [ID 655072 kern.notice] fffffe8002651e60 cl_haci:__1cIcmm_implStransitions_thread6M_v_+de ()
    Jul 22 19:31:12 cnode02 genunix: [ID 655072 kern.notice] fffffe8002651e70 cl_haci:__1cIcmm_implYtransitions_thread_start6Fpv_v_+b ()
    Jul 22 19:31:12 cnode02 genunix: [ID 655072 kern.notice] fffffe8002651ed0 cl_orb:cllwpwrapper+106 ()
    Jul 22 19:31:13 cnode02 genunix: [ID 655072 kern.notice] fffffe8002651ee0 unix:thread_start+8 ()
    Jul 22 19:31:13 cnode02 unix: [ID 100000 kern.notice]
    Jul 22 19:31:13 cnode02 genunix: [ID 672855 kern.notice] syncing file systems...
    Jul 22 19:31:13 cnode02 genunix: [ID 733762 kern.notice] 1
    Jul 22 19:31:34 cnode02 last message repeated 20 times
    Jul 22 19:31:35 cnode02 genunix: [ID 622722 kern.notice] done (not all i/o completed)
    Jul 22 19:31:36 cnode02 genunix: [ID 111219 kern.notice] dumping to /dev/dsk/c2t0d0s1, offset 3436511232, content: kernel
    Jul 22 19:31:45 cnode02 genunix: [ID 409368 kern.notice] ^M100% done: 136950 pages dumped, compression ratio 4.77,
    Jul 22 19:31:45 cnode02 genunix: [ID 851671 kern.notice] dump succeeded
    Jul 22 19:33:18 cnode02 genunix: [ID 540533 kern.notice] ^M

    Hi,
    the problem lies in the error message around the quorum device. The SC documentation, specifically the Sun Cluster Error Messages Guide at http://docs.sun.com/app/docs/doc/820-4681 explains this as follows:
    414208 QUORUM_GENERIC: quorum preempt error in CMM: Error %d --- QUORUM_GENERIC Tkown ioctl failed on quorum device %s.
    Description:
    This node encountered an error when issuing a QUORUM_GENERIC Take Ownership operation on a quorum device. This error indicates that the node was unsuccessful in preempting keys from the quorum device, and the partition to which it belongs was preempted. If a cluster is divided into two or more disjoint subclusters, one of these must survive as the operational cluster. The surviving cluster forces the other subclusters to abort by gathering enough votes to grant it majority quorum. This action is called "preemption of the losing subclusters".
    Solution:
    Other related messages identify the quorum device where the error occurred. If an EACCES error occurs, the QUORUM_GENERIC command might have failed because of the SCSI3 keys on the quorum device. Scrub the SCSI3 keys off the quorum device and reboot the preempted nodes."
    You should try to follow this advice. I would propose to chose a different QD before trying to do this, if you have one available. Is it possible that this LUN has been in use by a different cluster?
    To scrub SCSI3 keys you should use the scsi command in /usr/cluster/lib/sc: ./scsi -c inkeys -d <device> to check for the existence of keys, and ...-c scrub.. to remove any SCSI3 keys.
    Regards
    Hartmut

  • Oracle Applications 11i Load Balancing does not work with RAC one Node

    Hi all,
    Could you help me to resolve this issue.
    Architecture environment is :
    - One APPS tier node
    - Two nodes Oracle Database Appliance (Primary node 1 holds INSTANCE_1 et Secondary node is configurured to holds INSTANCE_2), i.e RAC one Node.
    - The primary node have instance_name SIGM_1 and the secondary node have instance_name SIGM_2, but in RAC one node, the secondary instance is not alive.
    We convert our EBS 11i environment to RAC following note ID Using Oracle 11g Release 2 Real Application Clusters with Oracle E-Business Suite Release 11i [ID 823586.1].
    When testing Database failover, Oracle Applications 11i load balancing does not work anymore.
    The root cause is that, when the primary node of the Rac one node is down, the INSTANCE_NAME_1 is automaically relocating to the surviving node,.
    During test failover, we imagine that when the primary node goes down, the secondary node start or relocate database with instance_name SIGM_2, and in that case the Oracle Applications load balancing works.
    Currently, when the primary node goes down, the instance_name SIGM_1 is relocated on the secondary node, which cause failure of Oracle Applications Load Balancing.
    Thank you for your advice.
    Moussa

    This is something I observed a long time ago for Safari (ie: around version 1). I'm not sure this is Safari, per se, but OpenSSL that is responsible for the behavior. I'm pretty sure Chrome does this and I've seen some Linux browsers do it.
    What I have done at the last two companies I've worked for is recommend that our clients do not use SSL SessionID as the way of tracking sticky sessions on web servers, but instead using IP address. This works in nearly all cases and has few downsides. The other solution is to use some sort of session sharing on your web servers to mitigate the issue (which also means that your web servers aren't a point of failure for your users' sessions). (One of the products I supported had no session information stored on the web servers, so we could safely round-robin requests, the other product could be implemented with a Session State Server... but in most cases we just used IP address to load balance with). The other solution is to configure your load balancer to terminate the SSL tunnel. You get some other benefits from this, such as allowing your load balancer to reduce the number of actual connections to the web servers. I've seen many devices setup this way.
    One thing to consider through this is that - due to the way internet standards work - this really can't be termed a bug on anyone's part. There is no guarantee in the SSL/TLS standards that a client will return the same SSL Session ID for each request and there is not requirement that subsequent requests will even use the same tunnel. Remember, HTTP is a stateless protocol. Each request is considered a new request by the web server and everything else is just trickery to try and get it to work the way you want. You can be annoyed at Safari's behavior, but it's been this way for over 5 years by my count, so I don't expect it to change.

  • Continiously log switching, one node unavailable

    We run 4-node RAC 9.2.0.4 on Solaris 9. Recently, one of nodes crashed due to hardware failure. After some time since this crash, i executed the command forcing log switching within the cluster: 'Alter system archive log current'. After this command, our redo logs started switching continuously - every 5-6 seconds. Generated archived logs where almost empty - they contained only a few blocks, often only one - header, i suppose. The problem was resolved only after the thread of the died node was disabled with command 'Alter database disable thread 4;'.
    I made a few experiments to investigate this problem. It seems that every command forcing redo log switch in a RAC leads to such excessive log switching, when one of nodes in cluster is unavailable. I tested 'Alter system archive log current', ARCHIVE_LAG_TARGET parameter, and the command 'Alter system switch logfile', executing from an Oracle job. In all these cases redo logs began switching continuously when the commands had beed executed or it was time to switch logs by ARCHIVE_LAG_TARGET parameter. Is there any possibility to force redo logs switch in all threads in a cluster without any problems, when one node is unavailable? We would like to switch logs every 10 minutes - to limit the amount of data that can be lost in case of whole cluster failure...
    Thanks in advance
    Alexey Sergeyev
    [email protected]

    Joel, thank you for replay. I tested forcing log switch with one node down on different ways - within a job or without one. The command 'Alter system archive log current' was executed without any job from SQL*Plus command line. This triggered continuously log switching on working nodes. The parameter ARCHIVE_LAG_TARGET does'nt produce any job - at least this job is'nt shown in DBA_JOBS. This parameter leads to continuously log switching on survived nodes, when one node goes down.
    I tried make a job, one per instance, with 'Execute immediate ''Alter system switch logfile''' command inside. Executing of such a job also triggered continuously log switching on working nodes...
    It seems that forcing log switching in a cluster works only when all is fine - all nodes are running. Is it Oracle bug? Or is it expected, but not documented behaviour?
    Alexey Sergeyev
    [email protected]

  • I have a MacAir, mid 2011 model, and want to view video on my TV.  I see that I need a mini display port to Hdmi but there are many of these.  What exatly do I need and how does one view a movie downloaded to the MacAir on a TV screen?

    I have a MacAir, mid 2011 model, and want to view video on my TV.  I see that I need a mini display port to Hdmi but there are many of these.  What exatly do I need and how does one go about viewing a movie downloaded to the MacAir on a TV screen?

    Welcome to Apple Support Communities
    That's exactly what you need. A Mini DisplayPort to HDMI adapter and a HDMI cable. See > http://support.apple.com/kb/HT4241?viewlocale=en_US
    This is the only way to view a video on the TV. After connecting your MacBook Air to the TV, image on your TV should show immediately. Then, press Command and F1 keys to mirror your MacBook Air display, and open the video

  • What is best all in one printer for my new MacBook Pro ? Needs to make very high quality photos.

    What is best all in one printer for my new MacBook Pro ? Needs to make very high quality photos. Using USB connection.

    That's a difficult one but I'd always go for HP as they make so many excellent models that you'll always be able to buy the cartridges from almost anyone.  Theyre darn good printer too.  I have four in the office here and one of them is a very neat flatbed with exceptionally high tonal qualities.  One of their cheaper models is the HP 5520 A4 inkjet all-in-one - CMYK.  Good value at £70 and 4800 x 1200 DPI. 

  • How to failover SCAN VIP and SCAN Listener from one node to another?

    Environment:
    O.S :          HP-UX  B.11.31 U ia64
    RDBMS:   Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
    It is a 2 Node RAC.
    Question:
    How to failover the SCAN VIP and SCAN LISTENER running on node 1 to node 2?
    What is the relation between standard LISTENER and SCAN LISTENER ?
    Why do we need LISTENER, when we have SCAN LISTENER ?
    When I tried with SRCVTL STOP LISTENER , I thought the SCAN LISTENER adn SCAN IP will failover, but it did not?
    Also please clarify if I use SRVCTL RELOCATE SCAN -i 1 -n Node1
    Actalluy I am trying that by moving the SCAN listeners so that when I do PSU 7 patching on 1 node, no incoming attempt to connect will spawn
    a process and thereby opening files in $ORACLE_HOME (which would prevent the patch from occurring)
    Please clarify my queries.
    Thanks,  Sivaprasad.S

    Hi Sivaprasad,
    1. The following link will help you for SCAN VIP and SCAN LISTENER failover from 1 node to another.
    http://heliosguneserol.wordpress.com/2012/10/19/how-to-relocate-scan_listener-from-one-node-to-another-node-on-rac-system/
    http://oracledbabay.blogspot.co.uk/2013/05/steps-to-change-scan-ip-address-in.html
    2. The Standard LISTENER is specific for particular node for which it is running. It cannot be relocated as its specific for the node its running. SCAN listeners are not replacements for the node listeners.A new set of cluster processes called scan listeners will run on three nodes in a cluster (or all nodes if there are less than 3).  If you have more than three nodes, regardless of the number of nodes you have, there will be at most three scan listeners. So no relation for standard LISTENER and SCAN LISTENER.
    3. Hmmm. let me put it in easy way for this question. All the RAC services like, asm, db , services, nodeapps registers with this SCAN_LISTENER. So if any of these services (asm, db , services, nodeapps) got down/not running, the SCAN_LISTENER will know the down status, and if any client requests to access the node/service which is down, the SCAN_LISTENER will redirect the client request to the least loaded node. So here all these process will happen without the knowledge of client. And As usual the standard LISTENER looks only for incoming request to connect with the database. So we need both LISTENER and SCAN LISTENER.
    4. If you provide SRCVTL STOP LISTENER,  it stops the default listener on the specified node_name, or the listeners represented in a given list of listener names, that are registered with Oracle Clusterware on the given node. No failover will happen under this case.
    5. Yes you can relocate if you want to relocate the scan.
    Hope this helps!!
    Regards,
    Pradeep. V

  • One node RAC pause/hang/block on other node shutdown

    Hi,
    We have a Java application running on Linux servers connecting to a 10.2.0.1 RAC cluster, also Linux. When the application starts it opens up a pool of connections to the databsae, and these are used throughout the life time of the application. One server connects to one RAC node.
    AppA - DBA
    AppB - DBB
    When we shutdown one node, the application connecting to that node stops, which is what we would expect in this configuration.
    What is strange is that the other application blocks for 63 seconds and then continues. So it is like the database is blocking, or the database connections are blocking.
    We are not using TAF, FAN, FCN, LB, VIPs or any special features, just simple lightweight JDBC from one server to one database. In fact I do not thing we are unwittingly using any of these features, we have them switched off.
    john

    user1788323 wrote:
    What is strange is that the other application blocks for 63 seconds and then continues. So it is like the database is blocking, or the database connections are blocking.How have you determined/diagnosed the 63s blocking? (more details in this regard may shed some light on the problem)
    Assuming that the block is server side, then two basic reasons comes to mind.
    Networking issue - the CRS on the surviving node has to perform certain functions, like switching the VIP of the node that left the cluster to a surviving cluster node. The listener may need to re-register services. A local firewall may need to be dynamically reconfigured for supporting the new failed-over VIP. Etc.
    Thus these could result in some kind of delay or issue in the network layer that you are seeing from the client side.
    Infrastructure issue. If the actual client request via JDBC reaches the server process, and it is slow in responding, then that is not a network issue - instead some underlying service or s/w layer that the server process needs to use to perform the client request is busy for those 63s.
    This could be related to the Interconnect, the shared I/O storage layer or something along those lines. For example, how does the Interconnect and/or SAN switch re-act when a server node is powered down or rebooted?
    There's not really sufficient information to make anything but a guesses.. You will need to isolate the problem with further testing.
    I have seen similar problems with 10.1.0.3 CRS and RAC when a node is evicted from the cluster. In this case the "hung" period was in excess of 15 minutes and only for new connections (Listener unable to hand off to dedicated servers or dispatchers). Existing connections worked fine however and were unaware of any problems. But part of the issue in this case was a poor (outdated) driver layer - and also the last time we used proprietary binary drivers (kernel modules) from 3rd party vendors that results in a tainted (and very fixed and rigid) Linux kernel. Today we're sticking with an OpenSource driver layer only for Linux.

  • XML - ORA-19025: EXTRACTVALUE returns value of only one node

    Hi,
    I am new to XML DB. Can somebody help me with the below XML
    I use the following XML ... (I have pasted only a part of it coz i require data only till this section )
    XML
    <?xml version="1.0" encoding="UTF-8"?><SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-
    instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><SOAP-ENV:Body>
    <ns:PicklistWS_GetPicklistValues_Output xmlns:ns="urn:crmondemand/ws/picklist/">
    <ListOfParentPicklistValue xmlns="urn:/crmondemand/xml/picklist">
    <ParentPicklistValue>
    <Language>ENU</Language>
    <ParentFieldName>plProduct_Team</ParentFieldName>
    <ParentDisplayValue>Marketing On Demand</ParentDisplayValue>
    <ParentCode>Marketing On Demand</ParentCode>
    <Disabled>N</Disabled>
    <ListOfPicklistValue>
    <PicklistValue>
    <Code>OCP/SME Escalation</Code>
    <DisplayValue>OCP/SME Escalation</DisplayValue>
    <Disabled>N</Disabled>
    </PicklistValue>
    <PicklistValue>
    <Code>Fusion Request</Code>
    <DisplayValue>Fusion Request</DisplayValue>
    <Disabled>N</Disabled>
    </PicklistValue>
    Code
    SELECT distinct
    EXTRACTVALUE(VALUE(SR), '/ParentPicklistValue/ListOfPicklistValue/PicklistValue/Code','xmlns="urn:/crmondemand/xml/picklist"') AS Display,
    EXTRACTVALUE(VALUE(SR),'/ParentPicklistValue/ListOfPicklistValue/PicklistValue/DisplayValue','xmlns="urn:/crmondemand/xml/picklist"') AS Return,
    EXTRACTVALUE(VALUE(SR),'/ParentPicklistValue/ParentDisplayValue','xmlns="urn:/crmondemand/xml/picklist"') AS parent_display,
    EXTRACTVALUE(VALUE(SR),'/ParentPicklistValue/ParentCode','xmlns="urn:/crmondemand/xml/picklist"') AS parent_return
    FROM TABLE(XMLSEQUENCE(EXTRACT(
    WEB_SERVICE('<?xml version="1.0" encoding="UTF-8" standalone="no"?><soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <soap:Body>
    <PicklistWS_GetPicklistValues_Input xmlns="urn:crmondemand/ws/picklist/">
    <FieldName>Type</FieldName>
    <RecordType>Service Request</RecordType>
    </PicklistWS_GetPicklistValues_Input>
    </soap:Body>
    </soap:Envelope>'
    ,'document/urn:crmondemand/ws/picklist/:GetPicklistValues', Sessionid),
    '/soap:Envelope/soap:Body/*/*/*','xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/'))) SR
    ERROR
    ORA-19025: EXTRACTVALUE returns value of only one node
    UNDERSTANDING
    As my Xpath points only until the node - ParentPicklistValue and not the child nodes under it. Hence when i try to query the child nodes - /ParentPicklistValue/ListOfPicklistValue/PicklistValue/Code, I recieve the above mentioned error.
    REQUIREMENT
    Can somebody help me to recieve the Parent values and also its child values based on the above query and xml.

    Hi,
    That's a classic ;)
    You need a second XMLSequence that will shred the collection of PicklistValue into relational rows :
    select extractvalue(value(sr2), '/PicklistValue/Code', 'xmlns="urn:/crmondemand/xml/picklist"') AS Display
         , extractvalue(value(sr2), '/PicklistValue/DisplayValue', 'xmlns="urn:/crmondemand/xml/picklist"') AS Return
         , extractvalue(value(sr1), '/ParentPicklistValue/ParentDisplayValue', 'xmlns="urn:/crmondemand/xml/picklist"') AS parent_display
         , extractvalue(value(sr1), '/ParentPicklistValue/ParentCode', 'xmlns="urn:/crmondemand/xml/picklist"') AS parent_return
    from table(
           xmlsequence(
             extract( WEB_SERVICE( ... )
                    , '/soap:Envelope/soap:Body/ns:PicklistWS_GetPicklistValues_Output/ListOfParentPicklistValue/ParentPicklistValue'
                    , 'xmlns="urn:/crmondemand/xml/picklist"
                       xmlns:ns="urn:crmondemand/ws/picklist/"
                       xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"' )
         ) sr1
       , table(
           xmlsequence(
             extract( value(sr1)
                    , '/ParentPicklistValue/ListOfPicklistValue/PicklistValue'
                    , 'xmlns="urn:/crmondemand/xml/picklist"' )
         ) sr2
    ;What's your database version BTW?
    On 10.2 and up, you may use XMLTable instead.

  • Xsl for removing specific nodes and modifying one node.

    Hello,
    i have the urgent need to remove specific nodes
    and modify one node in my XML.
    the xml as input :
    <?xml version="1.0" encoding="utf-8"?>
    <PLOT>
      <REQUEST>
        <GET_LAYOUT>
          <PROPERTIES>
            <MAPNAME name="xxxx" />
           </PROPERTIES>
          <DATAFRAME id="MAIN">
            <LAYERLIST>
              <LAYERDEF id="0" visible="false" query="" />
              <LAYERDEF id="1" visible="false" query="" />
              <LAYERDEF id="2" visible="false" query="" />
              <LAYERDEF id="3" visible="false" query="" />
              <LAYERDEF id="4" visible="false" query="" />
              <LAYERDEF id="5" visible="false" query="" />
              <LAYERDEF id="6" visible="false" query="" />
              <LAYERDEF id="7" visible="false" query="" />
              <LAYERDEF id="8" visible="false" query="" />
              <LAYERDEF id="9" visible="false" query="" />
              <LAYERDEF id="10" visible="false" query="" />     
            </LAYERLIST>
            <MAPSERVICELIST>   
              <MAPSERVICEDEF  service="BASEMAP" >
                <LAYERLIST>
                  <LAYERDEF id="2" visible="True" query="" />
                  <LAYERDEF id="1" visible="False" query="" />
                </LAYERLIST>
              </MAPSERVICEDEF>
              <MAPSERVICEDEF service="MAP1">
                <LAYERLIST>
                  <LAYERDEF id="4" visible="True" query="" />
                  <LAYERDEF id="3" visible="True" query="" />
                  <LAYERDEF id="2" visible="True" query="" />
                  <LAYERDEF id="1" visible="False" query="" />
                </LAYERLIST>
              </MAPSERVICEDEF>
            </MAPSERVICELIST>
          </DATAFRAME>
        </GET_LAYOUT>
      </REQUEST>
    </PLOT>
    what i want to have is:
    <?xml version="1.0" encoding="utf-8"?>
    <PLOT>
      <REQUEST>
        <GET_LAYOUT>
          <PROPERTIES>
            <MAPNAME name="xxxx" />
          </PROPERTIES>
          <DATAFRAME id="MAIN">
            <LAYERLIST>
       <LAYERDEF id="6" visible="True" query="" />
                <LAYERDEF id="5" visible="True" query="" />
                <LAYERDEF id="4" visible="True" query="" />
                <LAYERDEF id="3" visible="False" query="" />
    <LAYERDEF id="2" visible="True" query="" />
    <LAYERDEF id="1" visible="False" query="" />       
            </LAYERLIST>
            <MAPSERVICELIST/>   
          </DATAFRAME>
        </GET_LAYOUT>
      </REQUEST>
    </PLOT>
    as you see, <MAPSERVICELIST/>   is empty and <LAYERLIST> contains all <LAYERDEF> of <MAPSERVICEDEF>/<LAYERLIST> 
     The ones  of BASEMAP  are kept unchanged  but the ones of MAP1 are having a new attribute value for id.
    Thanks four your help.
    Regards.

    You can implement very straightforward map in BizTalk like below:
    If you are interested in XSLT of this map, I copied below which visual studio gave me when i validated the map:
    <?xml version="1.0" encoding="UTF-16"?>
    <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:var="http://schemas.microsoft.com/BizTalk/2003/var" exclude-result-prefixes="msxsl var" version="1.0">
    <xsl:output omit-xml-declaration="yes" method="xml" version="1.0" />
    <xsl:template match="/">
    <xsl:apply-templates select="/PLOT" />
    </xsl:template>
    <xsl:template match="/PLOT">
    <PLOT>
    <REQUEST>
    <GET_LAYOUT>
    <PROPERTIES>
    <MAPNAME>
    <xsl:if test="REQUEST/GET_LAYOUT/PROPERTIES/MAPNAME/@name">
    <xsl:attribute name="name">
    <xsl:value-of select="REQUEST/GET_LAYOUT/PROPERTIES/MAPNAME/@name" />
    </xsl:attribute>
    </xsl:if>
    <xsl:value-of select="REQUEST/GET_LAYOUT/PROPERTIES/MAPNAME/text()" />
    </MAPNAME>
    <xsl:value-of select="REQUEST/GET_LAYOUT/PROPERTIES/text()" />
    </PROPERTIES>
    <DATAFRAME>
    <xsl:if test="REQUEST/GET_LAYOUT/DATAFRAME/@id">
    <xsl:attribute name="id">
    <xsl:value-of select="REQUEST/GET_LAYOUT/DATAFRAME/@id" />
    </xsl:attribute>
    </xsl:if>
    <LAYERLIST>
    <xsl:for-each select="REQUEST/GET_LAYOUT/DATAFRAME/MAPSERVICELIST/MAPSERVICEDEF">
    <xsl:for-each select="LAYERLIST/LAYERDEF">
    <LAYERDEF>
    <xsl:if test="../../../../LAYERLIST/LAYERDEF/@id">
    <xsl:attribute name="id">
    <xsl:value-of select="../../../../LAYERLIST/LAYERDEF/@id" />
    </xsl:attribute>
    </xsl:if>
    <xsl:if test="@id">
    <xsl:attribute name="id">
    <xsl:value-of select="@id" />
    </xsl:attribute>
    </xsl:if>
    <xsl:if test="../../../../LAYERLIST/LAYERDEF/@visible">
    <xsl:attribute name="visible">
    <xsl:value-of select="../../../../LAYERLIST/LAYERDEF/@visible" />
    </xsl:attribute>
    </xsl:if>
    <xsl:if test="@visible">
    <xsl:attribute name="visible">
    <xsl:value-of select="@visible" />
    </xsl:attribute>
    </xsl:if>
    <xsl:if test="../../../../LAYERLIST/LAYERDEF/@query">
    <xsl:attribute name="query">
    <xsl:value-of select="../../../../LAYERLIST/LAYERDEF/@query" />
    </xsl:attribute>
    </xsl:if>
    <xsl:if test="@query">
    <xsl:attribute name="query">
    <xsl:value-of select="@query" />
    </xsl:attribute>
    </xsl:if>
    </LAYERDEF>
    </xsl:for-each>
    </xsl:for-each>
    <xsl:value-of select="REQUEST/GET_LAYOUT/DATAFRAME/LAYERLIST/text()" />
    </LAYERLIST>
    <MAPSERVICELIST>
    <xsl:text> </xsl:text>
    </MAPSERVICELIST>
    <xsl:value-of select="REQUEST/GET_LAYOUT/DATAFRAME/text()" />
    </DATAFRAME>
    <xsl:value-of select="REQUEST/GET_LAYOUT/text()" />
    </GET_LAYOUT>
    <xsl:value-of select="REQUEST/text()" />
    </REQUEST>
    </PLOT>
    </xsl:template>
    </xsl:stylesheet>
    You can highlight the issue if you have any specific one.
    Please mark it as Answer if this answers your question
    Thanks.
    Mo
    The contents I write here is my personal views, not the view of my employer and anyone else.

  • How to copy the data of one node to another of the same context

    hi experts,
          i need to copy the data of one node to the other node of the same context.
    the source node is a model node ( i.e comming from <b>RFC</b> ) and the destination node is a value node which i have creted.
    what i have done is.
    i have read the source node using wizard
    do.
    elem_t_p0591 = node_t_p0591->get_element(
        index = sy-index ).
        IF ( elem_t_p0591 IS INITIAL ).
          EXIT.
        ENDIF.
    elem_t_p0591->get_static_attributes(
          IMPORTING
            static_attributes = stru_t_p0591 ).
    IF stru_t_p0591 IS NOT INITIAL.
          wa_p0591 = stru_t_p0591.
          APPEND wa_p0591 TO itab_p0591.
        ENDIF.
      ENDDO.
    and then i am trying to read the destination node so the tha data i have got by above method can be binded to the destination node.
    but when i am trying to get the child node it is giving me a dump saying that
    <b>'Access via 'NULL' object reference not possible' </b> i understand this because when i debug my value node is becoming <b>initial</b>, and when i am trying to access the destination node using this <b>initial</b> node it will give me a dump,
    but what is the work aroud for this.
    Plz help.
    Regards,
    Santosh.

    Hi Santosh,
                   I tried replicating your behaviour in my system. This is what my context structure looks like:
    Node_Test (c-> 0:n)
      Name(attribute)
      Node_Test2 (c-> 0:1)
         Name2(attribute)
    Now when i try to access Node_Test2 then it returns me (initial) i.e. no reference and i believe the reason is that my parent node, Node_Test, is of type table( because of the cardinality) so I am expected to perform an operation on my sub node, Node_Test2, based on the node i have selected, or have specified via index .. 1 is taken by default, in Node_Test.. which in WDDOINIT is initial as i havent got access to my view yet.. so instead what you can do is bind data to your parent node, relevant data ofcourse, and then bind the recieved data to your child node i.e. Node3.
    I am pasting the code here for your reference :
    method WDDOINIT .
           DATA:
             node_test                           TYPE REF TO if_wd_context_node,
             elem_test                           TYPE REF TO if_wd_context_element,
             stru_test                           TYPE wd_this->element_test ,
             lt_table   LIKE TABLE OF stru_test,
             item_test_1                         LIKE stru_test-test_1.
         navigate from <CONTEXT> to <TEST> via lead selection
           node_test = wd_context->get_child_node( name = wd_this->wdctx_test ).
         @TODO handle not set lead selection
           IF ( node_test IS INITIAL ).
           ENDIF.
         get element via lead selection
           elem_test = node_test->get_element(  ).
         @TODO handle not set lead selection
           IF ( elem_test IS INITIAL ).
           ENDIF.
    stru_test-test_1 = 'Anoop'.
    APPEND stru_test to lt_table.
    stru_test-test_1 = 'Avi'.
    APPEND stru_test to lt_table.
    stru_test-test_1 = 'Sid'.
    APPEND stru_test to lt_table.
    CALL METHOD node_test->bind_table
      EXPORTING
        new_items            = lt_table
       set_initial_elements = ABAP_TRUE
       index                =
          DATA:
            node_t2                             TYPE REF TO if_wd_context_node,
            elem_t2                             TYPE REF TO if_wd_context_element,
            stru_t2                             TYPE wd_this->element_t2 ,
            item_t2_1                           LIKE stru_t2-t2_1.
        navigate from <CONTEXT> to <TEST> via lead selection
         node_test = wd_context->get_child_node( name = wd_this->wdctx_test ).
        @TODO handle not set lead selection
          IF ( node_test IS INITIAL ).
          ENDIF.
    <b>*     navigate from <TEST> to <T2> via lead selection
          node_t2 = node_test->get_child_node( name = wd_this->wdctx_t2 ).</b>
    <b>*     alternative navigation via index
         Node_T2 = Node_Test->get_Child_Node(
           Name = `T2` Index = 1 ).</b>
        @TODO handle non existant child
        if ( Node_T2 is initial ).
        endif.
        get element via lead selection
          elem_t2 = node_t2->get_element(  ).
        get single attribute
          elem_t2->get_attribute(
            EXPORTING
              name =  `T2_1`
            IMPORTING
              value = item_t2_1 ).
    endmethod.
    I hope this helps.
    Regards,
    Anoop

  • Can RAC and RAC One Node share the same servers ?

    Does anyone know if it is possible for RAC and the new 11gR2 RAC One Node to share the same set of physical servers i.e. in effect having 2 clusters sharing the same set of servers ( though you could argue RAC One node is a different type of clustering or even that it is not real clustering at all - more instance transporting ).
    Or does standard RAC always require exlusive use of the physical servers it is using as its nodes ?
    Any thoughts appreciated
    Jim

    Jimbo wrote:
    Does anyone know if it is possible for RAC and the new 11gR2 RAC One Node to share the same set of physical servers i.e. in effect having 2 clusters sharing the same set of servers ( though you could argue RAC One node is a different type of clustering or even that it is not real clustering at all - more instance transporting ).
    Or does standard RAC always require exlusive use of the physical servers it is using as its nodes ?
    Hi Jim,
    To deploy RAC we need Oracle Grid Infrastructure for a cluster (aka Oracle Clusterware) on top.
    What determine if it's Single /RAC /RAC one Node is the Installation of Oracle Database.
    So, Oracle Clusterware support on Same Cluster ( RAC/ RAC one Node / Single).
    You will need one installation for each Feature.
    e.g on Same Cluster
    ---> Grid Infrastructure GRID_HOME=/u01/app/11.2.0/grid
    --->> RAC one Node /ORACLE_HOME = /u01/app/oracle/product/11.2.0/racone_11203
    --->> RAC /ORACLE_HOME = /u01/app/oracle/product/11.2.0/rac_11203
    --->> SINGLE /ORACLE_HOME = /u01/app/oracle/product/11.2.0/db_11203
    For me make no sense RAC ONE NODE and RAC on same cluster.
    Because RAC ONE NODE is a RAC with less feature.
    Regards,
    Levi Pereira

  • Can I run more than one Node Manager per machine?

    Hia,
    We have a situation in our project where we need to run different domains on a Solaris machine in different java modes.
    Say Domain1 should be running in 32bit version of java where as Domain2 should be running in 64bit mode due to the nature of testing currently going on in different domains.
    We could successfully get the two domains running in different java modes in parallel by modifying the start scripts to decide which Sud data model to start the servers based on certain parms. However, the pain here is with the Node Manager.
    My understanding is that there should be one Node Manager running per machine for all the domains running on that machine. So when ever I have to run a domain in a java mode different to that of what Node Manager is running on, I had to kill the node manager and start it in the same version that I want to start the other servers in since Node Manager uses its starting parms internally to start the Managed Servers (Note: there is no issue in running the Admin Server regardless of the node manager mode as expected).
    Can somebody advise me if there is any way to get around this hassle?
    I want to know if we can run more than one node manager per machine.
    Below are the details of my env.
    Weblogic Server 10.3
    Solaris 10 SPARC 64 bit (SunOS 5.10 Generic_142900-14 sun4v sparc)
    java version "1.6.0_20"
    Hope all this makes sense...
    Cheers,
    Satish.
    Edited by: apsnaidu on Mar 15, 2013 3:29 PM

    You can run as many node manager as you want in a particular machine.
    At the time of starting the node manager you need to pass hostname & Port.
    This will start the nodemanager on different ports of a machine.
    sh startNodeManager.sh <hostname> <port>
    eg:- sh startNodeManager.sh dev_machine_01 5556
    sh startNodeManager.sh dev_machine_01 5557
    sh startNodeManager.sh dev_machine_01 5558
    After starting your node manager in different ports you need to change machine details from admin console.

Maybe you are looking for