Automatic Discovery of Nodes
Hello,
I installed the 10g agent on a host successufully. 10g OEM on another server did not discover the node automatically. I can manaually discover new nodes? Thank you in advance.
on the agent side ...
emctl status agent
see what url its talking on
From the oem server side, try to get to that url.
usually http://xxxx:1810/emd/main I believe.
Similar Messages
-
Automatic discovery of nodes fails
I have two x86 Linux machines both running RedHat 9 with Oracle 9i (9.2.0.4) installed. Both machines have agents running and have been verified using: agentctl status. When I bring up OEM management consoles on each machine they have discovered their own databases but both are unable to automatically discover each others nodes/databases. The nodes can be manually configured and I then have access to both databases.
From within OEM I can ping each agent successfully but only on their respective machines of course, since I have had to manually configure the other node.
I have created net configurations for both using netca and can login to each database using sqlplus with a remote connection from the other machine and database links work also between databases/machines. And tnsping works to each machine at the OS level.
Why can't I automatically discover the nodes if the machines are both running same OS and same database version and the agents seem to be ok? What am I missing?
Any suggestions/help would be appreciated!
Thanks,
-Dianeon the agent side ...
emctl status agent
see what url its talking on
From the oem server side, try to get to that url.
usually http://xxxx:1810/emd/main I believe. -
Facing issue while trying to disable automatic discovery of devices through Apple Bonjour
Hi All,
I am facing issue while trying to disable automatic discovery of devices through Apple Bonjour.
Background: Whenever our application is in running state, devices are automatically discovered if it connects to PC. We are using Apple Bonjour's auto discovery technology( mdnsresponder ).
We are registering a particular service type by using DNS API "DNSServiceRegister". Service type is getting registered properly and we are able to discovered that particular type of device.
Platform: Windows 7.0 / MAC 10.8
Issue:
But we are facing issue while trying to disable auto discovery of a device programmatically. i.e, unregistered a service reference programmatically from our windows application.
To unregistered a service we are using "DNSServiceRefDeallocate" DNS API. But looks like it is not working properly.
Is this DNS API “DNSServiceRefDeallocate” is correct one to unregistered the service?
Here is the step by step procedure that we are following to de-allocate a service reference:
1.Browsing / Query a service by using service type to get service reference (DNSServiceRef).
2.Get reference socket FD by using DNS API "DNSServiceRefSockFD".
3.Select a socket by using "select" API.
4.Close the socket that we got from step 2 by closesocket().
5.Delete the service reference by using DNS API "DNSServiceRefDeallocate" and service reference from step 1.
Are we missing any step to unregistered a service?
Regards,
GoutamOriginal problem I noticed was that regular websites I go to (such as msn) were only partially downloading. I could see the text on the site but no pictures or videos. All web surfing was extremely slow. When I would go to a site such as man I would see another address in the lower left corner for "ads1.msads.net" or "cdn.optimizely.com" that is was trying to connect to. I tried using all three of my browsers (firefox, safari, chrome) and got the same response on all browsers. After I spent some time researching the issue I decided I probably had a adware/malware problem so I decided to try adwaremedic.com. I could also not access that site along with thesafemac.com or apple.com. I was also getting the same response on my other devices (iPhone, iPad, and a mac air). I could not access any of these sites on any of my devices although I could get to almost any other site although it was very slow. At that point I decided to unplug the router. I also did a number of other things before then to try and manually get rid of any adware. Eventually I got msn back working, apple.com, and the speed was much faster. But, I still can not access adwaremedic and thesafemac.com. I could access these on my phone with 3G but not on my wifi. This is where the problem still stands. I am sure I still have some adware on my computer and need to find a way to remove it. I am no techie so the complicated manual fixes are difficult for me to do.
-
SCOM Network Discovery - Duplicate nodes with different Device Keys (MAC address)
Hi There,
We have deplyed SCOM 2012 SP1 for server and network monitoring. In the "Network Devices" view, there are few duplicate node entries for the same device. When i look at the details of each entry, the device keys (MAC address) are
different. for example, if there are 3 entires for the same device, only one will have the correct MAC address and remaining 2 are incorrect.
Have anyone came across such issue? Any solution to avoid the duplicates?
Thanks.
Venu.
Best regards, Venu.Last Thursday (9/25/14), Microsoft provided me with an updated version of a file that is used as part of the discovery process. At first, it appeared to only resolve the issue for some devices which was disappointing. On Saturday, I decided
to remove all managed devices and rediscover everything from scratch. We have 237 devices to monitor. Since Saturday, I had one ICMP only device duplicate itself, but after I removed the duplicate, I have not had any other duplicates created and
there have been many rediscoveries ru nsince then. So far so good. I've asked Microsoft to keep the case open until next Monday. This weekend, I have a full discovery scheduled to run on a schedule. I'll feel good after that if there
are still no duplicates.
The file replaced is "ic-iftable.asl" which is located on each management server in the path ""\[ SCOM install directory]\Server\NetworkMonitoring\rules\discovery". I'm not sure if I'm allowed to share the updated version of
the file. I have not received an explanation from the support technician yet as to the root cause. They took at least 5 sets of trace logs during the discovery and subsequent rediscovery process before giving me this updated file. I'll let
you know. -
3 node RAC -1 instnance getting down automatically in one node
Hi,
We have 3 node RAC system.
We are facing issue every week that one of the instance in one node among three node getting automatically restart.
During the time our transaction missing happened. Kindly advice why one node itself getting down and start automatically.
Thanks
RajHi,
As you are facing node eviction issue, to find out reason please share following details:
1. clusterware alert log file
2. cssd.log file
3. crsd.log file
4. No. of voting disks (*sometimes if you have only one voting disk, one node will be evicted automatically as i have observed*)
Regards,
Ashish Shukla -
Automatic discovery not working if empty WebSphere Application Server folders in Windows registry
We were trying to discover WebSphere 8.5.5 servers in our environment but the JEE MP couldn't find them. The discovery wrote this kind of error to the Windows Log:
The process started at 8:56:25 AM failed to create System.Discovery.Data. Errors found in output:
C:\Program Files\Microsoft Monitoring Agent\Agent\Health Service State\Monitoring Host Temporary Files 9\73626\Microsoft.JEE.WebSphere.Install.Discover.vbs(196, 1) Microsoft VBScript runtime error: Object not a collection
Command executed: "C:\Windows\system32\cscript.exe" /nologo "Microsoft.JEE.WebSphere.Install.Discover.vbs" {10FEBF68-F318-4F09-8E6B-4567D66E2559} {014E39AA-B032-13EC-E5F1-3B880E645FFC} ServerName {D7E586A0-5480-9B71-F731-D3F15B3627FD} "8"
Working Directory: C:\Program Files\Microsoft Monitoring Agent\Agent\Health Service State\Monitoring Host Temporary Files 9\73626\
One or more workflows were affected by this.
Workflow name: Microsoft.JEE.WebSphere.8.Windows.Installation.Discovery
Instance name: ServerName
Instance ID: {014E39AA-B032-13EC-E5F1-3B880E645FFC}
Management group: SOKSCOM2012
I investigated the discovery vbs script and Windows registry and found out that one of the users had empty WebSphere Application Server folder under Software/IBM in Windows registry. This was probably left after uninstallation of WAS. After I removed the
empty registry entry then the auto-discovery found WAS instances.
Would it be possible to enhance the discovery vbs script to exclude empty USER/Software/IBM/WebSphere Application Server key folder in the next version?I have contacted IIS forum support.
Please review the link: http://forums.iis.net/p/1213109/2079229.aspx?Re+Windows+Server+2012+Printing+using+UNC+path+not+working
Their final response:
Printing from ASP.NET using System.Drawing.Printing itself is a horrible approach, as this namespace was designed for Windows Forms only. The designers did not take everything about ASP.NET in mind, so any issue can happen. That can answer why the HP model
works while the Samsung fails, as the HP one just "happens
to work",
http://msdn.microsoft.com/en-us/library/system.drawing.printing.printdocument.aspx
Similarly, System.Printing was designed just for WPF.
About which printing API to use in ASP.NET/IIS, there is no clear answer so far. Thus, your only resource is Microsoft support, who can perform further analysis (with their dedicate utilities and of course Windows source code) and might come across a solution
to help you out. This is not a trivial scenario. -
What is behind the scenes of "Automatic Discovery of Cluster Members?"
Do any of you know the basic mechenism ( or concept ) of authomatic discovery of cluster members?
And how can we be confident that an application deployed anywhere on the network (LAN,WAN, or the Internet) can join a cluster?
Sorry for this clumsy question, but I realy need to know this.
Thanks in advance!
ScottHi Scott,
Coherence uses a protocol called TCMP which is described in the following Wiki article:
http://wiki.tangosol.com/display/COH32UG/Network+Protocols
By default, multicast is used to discover if a cluster is already running that the new member may join.
In order to test multicast in your environment, you need to run the multicast test:
http://wiki.tangosol.com/display/COH32UG/Multicast+Test
Some environments don't allow multicast or some switches don't handle multicast very well, in which case you'd need to run using WKA (Well Known Address):
http://wiki.tangosol.com/display/COH32UG/well-known-addresses
Regards,
Jon Hall.
p.s. once you've confirmed that clustering is taking place (either using the default of multicast or using WKA), then you should run the datagram test to test your network's performance:
http://wiki.tangosol.com/display/COH32UG/Datagram+Test
Also, check out the production checklist as this has lots of really good information in it that will be useful going forward:
http://wiki.tangosol.com/display/COH32UG/Production+Checklist -
Automatic discovery of Vista PC on network?
So I have the MacBook, and I have a Windows Vista desktop. They can see each other fine; on my Mac I can click "Go -> Connect to Server..." and put in my Vista PC's IP address and it will come up. Similarly, I can click "Start" and type in my Mac's IP address and it will come up.
My question is why don't they automatically come up in their respective network browsers? Why can't I go to "Go -> Network" and see my PC?
Would appreciate some tips on how to get that going. It's not a huge annoyance that it doesn't work, but it would be nice if it did.
Thanks in advance.If there was any error message that might help others give you an answer.
I would also go to the PC Firewall and add Port 631 to the File and Printer Sharing option.
I take it that the Firewall is allowing File and Printer Sharing as you said the option was turned On ?
Otherwise I have nothing else.
8:10 PM Wednesday; March 17, 2010
Please, if posting Logs, do not post any Log info after the line "Binary Images for iChat" -
EM for Coherence - Cannot automatically start departed storage enabled nodes
Hi Guru,
I have a cluster with 4 storage enabled nodes. I want EM to monitor those 4 storage enabled nodes and automatically bring up nodes if down. So i set the "Nodes Replenish and Entity Discovery Alert Metric ->
Cluster Size Change (To Replenish Nodes)" as follows:
Warning Threshold: Not Defined
Critical Threshold: 3
Comparision Operator: <
Occurrences Before Alert: 1
I manually killed 2 storage nodes and hope EM can automatically bring up them. But unfortunately, this never happen. I even cannot see the correct "Severity Message" displayed on GUI, it always shows "0 nodes departed Coherence cluster".
Did anyone have the similar problem? Any hints are appreciated!
Thanks
HysunHi,
It looks like your cache servers have not used the correct cache configuration file so they do not have a service with the name DistributedSessions. You can see this in your log output here:
Services
ClusterService{Name=Cluster, State=(SERVICE_STARTED, STATE_JOINED), Id=0, Version=3.7.1, OldestMemberId=5}
InvocationService{Name=Management, State=(SERVICE_STARTED), Id=1, Version=3.1, OldestMemberId=5}
PartitionedCache{Name=DistributedCache, State=(SERVICE_STARTED), LocalStorage=enabled, PartitionCount=257, BackupCount=1, AssignedPartitions=257, BackupPartitions=0}
ReplicatedCache{Name=ReplicatedCache, State=(SERVICE_STARTED), Id=3, Version=3.0, OldestMemberId=2}
Optimistic{Name=OptimisticCache, State=(SERVICE_STARTED), Id=4, Version=3.0, OldestMemberId=2}
InvocationService{Name=InvocationService, State=(SERVICE_STARTED), Id=5, Version=3.1, OldestMemberId=2}
You said in the original post that you used the following JVM arguments:
-Dtangosol.coherence.distributed.localstorage=true -Dtangosol.coherence.session.localstorage=true -Dtangosol.coherence.cluster=CoherenceCluster -Dtangosol.coherence.clusteraddress=231.1.3.4 -Dtangosol.coherence.clusterport=7744
...but none of those specify the cache configuration to use (in your case session-cache-config.xml) so the node will use the default configuration file; the default name is coherence-cache-config.xml which is inside the Coherence jar file.
You need to add the following JVM argument
-Dtangosol.coherence.cacheconfig=session-cache-config.xml -Dtangosol.coherence.distributed.localstorage=true -Dtangosol.coherence.session.localstorage=true -Dtangosol.coherence.cluster=CoherenceCluster -Dtangosol.coherence.clusteraddress=231.1.3.4 -Dtangosol.coherence.clusterport=7744
JK -
Problem with childs nodes and automatic key mapping in a Data Object
Hi experts!
I'm doing the service order tutorial from the mobile help at [this link|http://help.sap.com/saphelp_nwmobile71/helpdata/en/21/9b5b924c3b434fba4767731794b029/frameset.htm] and I have a problem...
In the topic "Modeling the Equipment Data Object", says you have to mark the "Automatic Key Mapping" checkbox. So when I had to create a third child node ( the location node ) the system raised an exception with the message "Deselect automatic key mapping flag for more than two-level nodes". I'm trying deselecting the flag and creating the location node, but when I want mark again the automatic key mapping flag, this is disabled.
What can I do to solve this and create the three child nodes with the flag marked? It's a configuration thing?
Any help it's very welcome. Thanks in advance.
Best regards,
Simon.The thing is: Its not allowed to use automatic keymapping if you have more than two levels. This is why the message showed up, and this is why its been disabled.
What automatic keymapping does: Figures out automatically which child node belongs to which parent (by guessing from the field name and type, which fields in the child correspond to which key fields of the parent).
On three levels, this becomes more complicated => Its disabled.
How to do keymapping yourself instead of having the DOE do it automatically: Do 'Explicit keymapping' from each child to its parent. Explicit keymapping is done by clicking on the corresponding menu button in the child node. Here you need to associate child node fields (they need not be key fields of the child, but they are allowed to be that as well) to each of its parent nodes key fields (so that each child can be associated to its parent).
Cheers -
Dear All,
I am facing issue with automatic discovery of ISE node by NAC agent (Discovery Host). Our client was using Cisco NAC 3310 appliances which has been replaced by ISE and we have upgraded the NAC agent software as well. Now what is happening that whenever NAC agent starts on a user PC it shows ip address of old NAC manager in the discovery host field of NAC agent and due to this, posture assesment doesn't complete and user gets stuck in remediation state.
As a work arround , I changed the ip address manually in Discovery Host option of NAC agent to point towards new ISE node and then posture assesment gets completed. So kindly advice how I can make this process automatic so that NAC agent should communicated with ISE automatically.
Regards,
MujeebHi,
It has been resolved without manual entry in NAC agent or NACAgentCFG file. Actually the redirection was not working properly for agent so I changed the redirect ACL as follows,
ip access-list ext ACL-AGENT-REDIRECT
#deny udp any any eq 53
#permit tcp any any eq 80
Kindly refer following document for the same.
http://www.cisco.com/en/US/solutions/collateral/ns340/ns414/ns742/ns744/docs/howto_10_universal_switch_config.pdf
Now the agent is able to find the primary ISE node and posture is woking fine.
Regards,
Mujeeb -
Intelligent agent, adding nodes & databases
Hello
I am trying to add remote databases (8i on Linux) using Management Server in OEM (9i on
Windows)
The node successfully gets discovered
But the message in Oracle Home Information that I am getting is
"Oracle Home information not available. Please upgrade to agent version 9.0 or higher."
Linux m/c's node is added successfully. But I am not able to see the nodes like Databases, HTTP Servers, Listeners etc under the node it
And since it has automatically discovered the node, it doesnt give me the option to add the
databases manually
Searched on metalink and got to know (in Note 160427.1) that nmumigr8 utility has to be run
But this needs to be run on the remote database that needs to be added in OEM
I do not have any installation of 9i on Linux
Where will I get this utility ?
Is there anything I am interpreting wrong ?
What shall I do ?Hi,
Sometimes Agent on target node gets messed up.
Try to clear it up by removing the Linux node from OEM Navigator, then go to Linux box, stop the agent, then remove following files on Linux box:
$ORACLE_HOME/network/agent/*.q
$ORACLE_HOME/network/agent/services.ora
$ORACLE_HOME/network/admin/snmp*.ora
Then start Agent again and check $ORACLE_HOME/network/agent/services.ora - normally you should see database, listener and node as entries there.
If you do not see your database in the file, then probably something messed up with your listener.ora file, cause this is where Agent finds out about your database.
If you do see you database in the $ORACLE_HOME/network/agent/services.ora, then go ahead and do node discovery in the OEM
I have 37 nodes with 60 databases in my OEM setup, it should work. I use OEM 9.2 with targets ranging from 8.1.6 to 9.2
Good luck
Albert -
Useful Code of the Day: Hideable Tree Nodes
Someone posted about how they could selectively hide tree nodes, and I already had this AbstractTreeModel class (which does some things DefaultTreeModel does and some it doesn't) and a concrete subclass for TreeNode objects, so I was thinking how one could do hideable nodes. So I came up with this solution.
There's 4 classes here:
- AbstractTreeModel is the base for the concrete TreeNodeTreeModel
- TreeNodeTreeModel extends AbstractTreeModel to support TreeNodes (DefautlMutableTreeNode, etc.)
- HideableMutableTreeNode which is a DefautlMutableTreeNode subclass which has a visible field (with is/set methods, of course).
- HideableTreeModel is the hideable model which is a subclass of TreeNodeTreeModel.
A HideableMutableTreeNode can be set invisible directly, but the tree still needs to be notified to update. So it's best to use the methods in HideableTreeModel which set a node's visibility which notify the tree of changes accordingly. Methods are also provided to check a full path's visibility or ensure a node including all parent nodes are visible.
A HideableTreeModel can take any TreeNode class, it doesn't have to be all HideableMutableTreeNodes, but only HideableMutableTreeNodes can be made invisible, of course. Any other TreeNode type would just be considered visible.
Hiding nodes works basically by making the tree think there's less nodes then there are. And to do this, the node counts and child index search just works by looping thru the parent's children. This has potential perfomance drawbacks of course, since one has to loop thru the node's children to get nodes every time. This could be alleviated by not supporting non-hideable nodes changing the internal maintenance of HideableMutableTreeNode contents. But I'll leave that to whoever really needs it. It shouldn't be a problem if there are are a relatively small set of child nodes in any given parent.
Also, note that the root node in the model cannot be made invisible, cuz it'd be redundant since JTree can be set to hide the root node.
// *** HideableTreeModel ***
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.tree.*;
* <code>HideableTreeModel</code> is an <code>TreeNodeTreeModel</code>
* implementation for <code>HideableMutableTreeNode</code> objects. The
* model can also take any other <code>javax.swing.tree.TreeNode</code>
* objects.
public class HideableTreeModel extends TreeNodeTreeModel {
* Creates a new <code>HideableTreeModel</code> object.
* @param root the root node
public HideableTreeModel(TreeNode root) {
super(root);
* Checks if the specified node is visible. A node can only be
* hidden if the node is an instance of <code>HideableMutableTreeNode</code>. <br />
* <br />
* Note that this only test the visibility of the specified node, not
* whether a parent node is visible. Use <code>isPathToNodeVisible(Object)</code>
* to check if the full path is visible.
* @param node the node
* @param true if the node is visible, else false
public boolean isNodeVisible(Object node) {
if(node != getRoot()) {
if(node instanceof HideableMutableTreeNode) {
return ((HideableMutableTreeNode)node).isVisible();
return true;
* Sets the specified node to be hidden. A node can only be made hidden
* if the node is an instance of <code>HideableMutableTreeNode</code>. <br />
* <br />
* Note that this method will notify the tree to reflect any changes to
* node visibility. <br />
* <br />
* Note that this will not alter the visibility of any nodes in the
* specified node's path to the root node. Use
* <code>ensurePathToNodeVisible(Object)</code> instead to make sure the
* full path down to that node is visible. <br />
* <br />
* Note that this method will notify the tree to reflect any changes to
* node visibility.
* @param node the node
* @param v true for visible, false for hidden
* @param true if the node's visibility could actually change, else false
public boolean setNodeVisible(Object node, boolean v) {
// can't hide root
if(node != getRoot()) {
if(node instanceof HideableMutableTreeNode) {
HideableMutableTreeNode n = (HideableMutableTreeNode)node;
// don't fix what ain't broke...
if(v != n.isVisible()) {
TreeNode parent = n.getParent();
if(v) {
// need to get index after showing...
n.setVisible(v);
int index = getIndexOfChild(parent, n);
super.nodeInserted(parent, n, index);
} else {
// need to get index before hiding...
int index = getIndexOfChild(parent, n);
n.setVisible(v);
super.nodeRemoved(parent, n, index);
return true;
return false;
* Checks if the specified node is visible and all nodes above it are
* visible.
* @param node the node
* @param true if the path is visible, else false
public boolean isPathToNodeVisible(Object node) {
Object[] path = getPathToRoot(node);
for(int i = 0; i < path.length; i++) {
if(!isNodeVisible(path)) {
return false;
return true;
* Sets the specified node and all nodes above it to be visible.
* Note that this method will notify the tree to reflect any changes to
* node visibility.
* @param node the node
public void ensurePathToNodeVisible(Object node) {
Object[] path = getPathToRoot(node);
for(int i = 0; i < path.length; i++) {
setNodeVisible(path[i], true);
* Returns the child of parent at index index in the parent's child array.
* @param parent the parent node
* @param index the index
* @return the child or null if no children
public Object getChild(Object parent, int index) {
if(parent instanceof TreeNode) {
TreeNode p = (TreeNode)parent;
for(int i = 0, j = -1; i < p.getChildCount(); i++) {
TreeNode pc = (TreeNode)p.getChildAt(i);
if(isNodeVisible(pc)) {
j++;
if(j == index) {
return pc;
return null;
* Returns the number of children of parent.
* @param parent the parent node
* @return the child count
public int getChildCount(Object parent) {
int count = 0;
if(parent instanceof TreeNode) {
TreeNode p = (TreeNode)parent;
for(int i = 0; i < p.getChildCount(); i++) {
TreeNode pc = (TreeNode)p.getChildAt(i);
if(isNodeVisible(pc)) {
count++;
return count;
* Returns the index of child in parent.
* @param parent the parent node
* @param child the child node
* @return the index of the child node in the parent
public int getIndexOfChild(Object parent, Object child) {
int index = -1;
if(parent instanceof TreeNode && child instanceof TreeNode) {
TreeNode p = (TreeNode)parent;
TreeNode c = (TreeNode)child;
if(isNodeVisible(c)) {
index = 0;
for(int i = 0; i < p.getChildCount(); i++) {
TreeNode pc = (TreeNode)p.getChildAt(i);
if(pc.equals(c)) {
return index;
if(isNodeVisible(pc)) {
index++;
return index;
* Main method for testing.
* @param args the command-line arguments
public static void main(String[] args) {
JFrame f = new JFrame();
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
HideableMutableTreeNode root = new HideableMutableTreeNode("root");
root.add(new HideableMutableTreeNode("child_1"));
final HideableMutableTreeNode c2 = new HideableMutableTreeNode("child_2");
c2.setVisible(false);
final HideableMutableTreeNode c2a = new HideableMutableTreeNode("child_2_A");
c2.add(c2a);
c2.add(new HideableMutableTreeNode("child_2_B"));
root.add(c2);
HideableMutableTreeNode c3 = new HideableMutableTreeNode("child_3");
HideableMutableTreeNode cC = new HideableMutableTreeNode("child_3_C");
cC.setVisible(false);
c3.add(cC);
c3.add(new HideableMutableTreeNode("child_3_D"));
root.add(c3);
root.add(new HideableMutableTreeNode("child_4"));
root.add(new HideableMutableTreeNode("child_5"));
DefaultMutableTreeNode c6 = new DefaultMutableTreeNode("child_6");
c6.add(new DefaultMutableTreeNode("child_6_A"));
c6.add(new DefaultMutableTreeNode("child_6_B"));
root.add(c6);
final HideableTreeModel model = new HideableTreeModel(root);
JTree tree = new JTree(model);
f.getContentPane().add(new JScrollPane(tree), BorderLayout.CENTER);
JButton b = new JButton("toggle");
b.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
model.setNodeVisible(c2, !model.isNodeVisible(c2));
//model.ensurePathToNodeVisible(c2a);
f.getContentPane().add(b, BorderLayout.SOUTH);
f.pack();
f.setSize(300, 500);
f.show();
// *** HideableMutableTreeNode ***
import javax.swing.*;
import javax.swing.tree.*;
* <code>HideableMutableTreeNode</code> is a <code>DefaultMutableTreeNode</code>
* implementation that works with <code>HideableTreeModel</code>.
public class HideableMutableTreeNode extends DefaultMutableTreeNode {
* The node is visible flag.
public boolean visible = true;
* Creates a tree node that has no parent and no children, but which
* allows children.
public HideableMutableTreeNode() {
super();
* Creates a tree node with no parent, no children, but which allows
* children, and initializes it with the specified user object.
* @param userObject - an Object provided by the user that
* constitutes the node's data
public HideableMutableTreeNode(Object userObject) {
super(userObject);
* Creates a tree node with no parent, no children, initialized with the
* specified user object, and that allows children only if specified.
* @param userObject - an Object provided by the user that
* constitutes the node's data
* @param allowsChildren - if true, the node is allowed to have child
* nodes -- otherwise, it is always a leaf node
public HideableMutableTreeNode(Object userObject, boolean allowsChildren) {
super(userObject, allowsChildren);
* Checks if the node is visible.
* @return true if the node is visible, else false
public boolean isVisible() {
return this.visible;
* Sets if the node is visible.
* @param v true if the node is visible, else false
public void setVisible(boolean v) {
this.visible = v;
// *** TreeNodeTreeModel ***
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.tree.*;
* <code>TreeNodeTreeModel</code> is an <code>AbstractTreeModel</code>
* implementation for <code>javax.swing.tree.TreeNode</code> objects.
public class TreeNodeTreeModel extends AbstractTreeModel {
* Creates a new <code>TreeNodeTreeModel</code> object.
* @param root the root node
public TreeNodeTreeModel(TreeNode root) {
super();
setRoot(root);
* Returns the parent of the child node.
* @param node the child node
* @return the parent or null if root
public Object getParent(Object node) {
if(node != getRoot() && (node instanceof TreeNode)) {
return ((TreeNode)node).getParent();
return null;
* Returns the child of parent at index index in the parent's child array.
* @param parent the parent node
* @param index the index
* @return the child or null if no children
public Object getChild(Object parent, int index) {
if(parent instanceof TreeNode) {
return ((TreeNode)parent).getChildAt(index);
return null;
* Returns the number of children of parent.
* @param parent the parent node
* @return the child count
public int getChildCount(Object parent) {
if(parent instanceof TreeNode) {
return ((TreeNode)parent).getChildCount();
return 0;
* Returns the index of child in parent.
* @param parent the parent node
* @param child the child node
* @return the index of the child node in the parent
public int getIndexOfChild(Object parent, Object child) {
if(parent instanceof TreeNode && child instanceof TreeNode) {
return ((TreeNode)parent).getIndex((TreeNode)child);
return -1;
* Returns true if node is a leaf.
* @param node the node
* @return true if the node is a leaf
public boolean isLeaf(Object node) {
if(node instanceof TreeNode) {
return ((TreeNode)node).isLeaf();
return true;
* Main method for testing.
* @param args the command-line arguments
public static void main(String[] args) {
JFrame f = new JFrame();
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
DefaultMutableTreeNode root = new DefaultMutableTreeNode("root");
root.add(new DefaultMutableTreeNode("child_1"));
DefaultMutableTreeNode c2 = new DefaultMutableTreeNode("child_2");
c2.add(new DefaultMutableTreeNode("child_2_A"));
c2.add(new DefaultMutableTreeNode("child_2_B"));
root.add(c2);
root.add(new DefaultMutableTreeNode("child_3"));
root.add(new DefaultMutableTreeNode("child_4"));
JTree tree = new JTree(new TreeNodeTreeModel(root));
f.getContentPane().add(new JScrollPane(tree));
f.pack();
f.setSize(300, 500);
f.show();
// *** AbstractTreeModel ***
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.net.*;
import java.text.*;
import java.util.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.tree.*;
public abstract class AbstractTreeModel implements TreeModel {
* The list of tree model listeners.
private Vector modelListeners = new Vector();
* The root object of the tree.
private Object root = null;
* Basic no-op constructor.
public AbstractTreeModel() {
* Gets the root object of the tree.
* @return the root object
public Object getRoot() {
return this.root;
* Sets the root object of the tree.
* @param r the root object
protected void setRoot(Object r) {
this.root = r;
* Gets the path to the root node for the specified object.
* @param node the root node
* @return the path to the object or <CODE>null</CODE>
public Object[] getPathToRoot(Object node) {
return getPathToRoot(node, 0);
* Gets the path to the root node for the specified object.
* @param node the root node
* @param i the current index
* @return the path to the object or <CODE>null</CODE>
private Object[] getPathToRoot(Object node, int i) {
Object anode[];
if(node == null) {
if(i == 0) {
return null;
anode = new Object[i];
} else {
i++;
if(node == getRoot()) {
anode = new Object[i];
} else {
anode = getPathToRoot(getParent(node), i);
anode[anode.length - i] = node;
return anode;
* Gets the parent object of the specified object. This method is not
* part of the <code>javax.swing.tree.TreeModel</code> interface, but is
* required to support the <code>getPathToRoot(Object)</code> method,
* which is widely used in this class. Therefore, it is important to
* correctly implement this method.
* @param obj the object
* @parma the parent object or null if no parent or invalid object
protected abstract Object getParent(Object obj);
* Adds a listener for the <CODE>TreeModelEvent</CODE> posted after the
* tree changes.
* @param l the tree model listener
public void addTreeModelListener(TreeModelListener l) {
modelListeners.addElement(l);
* Removes a listener previously added with addTreeModelListener().
* @param l the tree model listener
public void removeTreeModelListener(TreeModelListener l) {
modelListeners.removeElement(l);
* Forces the tree to reload. This is useful when many changes occur
* under the root node in the tree structure.
* <b>NOTE:</b> This will cause the tree to be collapsed. To maintain
* the expanded nodes, see the <code>getExpandedPaths(JTree)</code>
* and <code>expandPaths(JTree, ArrayList)</code> methods.
* @see #getExpandedPaths(JTree)
* @see #expandPaths(JTree, ArrayList)
public void reload() {
reload(getRoot());
* Forces the tree to repaint. This is useful when many changes occur
* under a specific node in the tree structure.
* <b>NOTE:</b> This will cause the tree to be collapsed below the
* updated node.
* @param node the node that changed
public void reload(Object node) {
if(node != null) {
TreePath tp = new TreePath(getPathToRoot(node));
fireTreeStructureChanged(new TreeModelEvent(this, tp));
* Messaged when the user has altered the value for the item identified
* by <CODE>path</CODE> to <CODE>newValue</CODE>.
* @param path the path to the changed object
* @param newValue the new value
public void valueForPathChanged(TreePath path, Object newValue) {
nodeChanged(path.getLastPathComponent());
* Notifies the tree that nodes were inserted. The index is looked up
* automatically.
* @param node the parent node
* @param child the inserted child node
public void nodeInserted(Object node, Object child) {
nodeInserted(node, child, -1);
* Notifies the tree that nodes were inserted.
* @param node the parent node
* @param child the inserted child node
* @param index the index of the child
public void nodeInserted(Object node, Object child, int index) {
if(index < 0) {
index = getIndexOfChild(node, child);
if(node != null && child != null && index >= 0) {
TreePath tp = new TreePath(getPathToRoot(node));
int[] ai = { index };
Object[] ac = { child };
fireTreeNodesInserted(new TreeModelEvent(this, tp, ai, ac));
* Notifies the tree that nodes were removed. The index is required
* since by this point, the object will no longer be in the tree.
* @param node the parent node
* @param child the removed child node
* @param index the index of the child
public void nodeRemoved(Object node, Object child, int index) {
if(node != null && child != null && index >= 0) {
TreePath tp = new TreePath(getPathToRoot(node));
int[] ai = { index };
Object[] ac = { child };
fireTreeNodesRemoved(new TreeModelEvent(this, tp, ai, ac));
* Notifies the tree that a node was changed.
* @param node the changed node
public void nodeChanged(Object node) {
if(node != null) {
TreePath tp = new TreePath(getPathToRoot(node));
fireTreeNodesChanged(new TreeModelEvent(this, tp, null, null));
* Fires "tree nodes changed" events to all listeners.
* @param event the tree model event
protected void fireTreeNodesChanged(TreeModelEvent event) {
for(int i = 0; i < modelListeners.size(); i++) {
((TreeModelListener)modelListeners.elementAt(i)).treeNodesChanged(event);
* Fires "tree nodes inserted" events to all listeners.
* @param event the tree model event
protected void fireTreeNodesInserted(TreeModelEvent event) {
for(int i = 0; i < modelListeners.size(); i++) {
((TreeModelListener)modelListeners.elementAt(i)).treeNodesInserted(event);
* Fires "tree nodes removed" events to all listeners.
* @param event the tree model event
protected void fireTreeNodesRemoved(TreeModelEvent event) {
for(int i = 0; i < modelListeners.size(); i++) {
((TreeModelListener)modelListeners.elementAt(i)).treeNodesRemoved(event);
* Fires "tree structure changed" events to all listeners.
* @param event the tree model event
protected void fireTreeStructureChanged(TreeModelEvent event) {
for(int i = 0; i < modelListeners.size(); i++) {
((TreeModelListener)modelListeners.elementAt(i)).treeStructureChanged(event);
* Records the list of currently expanded paths in the specified tree.
* This method is meant to be called before calling the
* <code>reload()</code> methods to allow the tree to store the paths.
* @param tree the tree
* @param pathlist the list of expanded paths
public ArrayList getExpandedPaths(JTree tree) {
ArrayList expandedPaths = new ArrayList();
addExpandedPaths(tree, tree.getPathForRow(0), expandedPaths);
return expandedPaths;
* Adds the expanded descendants of the specifed path in the specified
* tree to the internal expanded list.
* @param tree the tree
* @param path the path
* @param pathlist the list of expanded paths
private void addExpandedPaths(JTree tree, TreePath path, ArrayList pathlist) {
Enumeration enum = tree.getExpandedDescendants(path);
while(enum.hasMoreElements()) {
TreePath tp = (TreePath)enum.nextElement();
pathlist.add(tp);
addExpandedPaths(tree, tp, pathlist);
* Re-expands the expanded paths in the specified tree. This method is
* meant to be called before calling the <code>reload()</code> methods
* to allow the tree to store the paths.
* @param tree the tree
* @param pathlist the list of expanded paths
public void expandPaths(JTree tree, ArrayList pathlist) {
for(int i = 0; i < pathlist.size(); i++) {
tree.expandPath((TreePath)pathlist.get(i));Hey
I'm not trying to show anyone up here, but having just built a tree model for displaying an XML document in a tree, I thought this seemed like a neat exercise.
I implemented this very differently from the @OP. I only have one class, HiddenNodeTreeModel. All the hidden node data is stored in the model itself in my class. The advantage of what I've created is it will work with any TreeModel. The disadvantage is that I think it's not going to be very scalable - the additional computing to get the number of child nodes and to adjust indexes is heavy. So if you need a scalable solution definitely don't use this.
Anyway here you go
HiddenNodeTreeModel.java
======================
package tjacobs.ui.tree;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JTree;
import javax.swing.event.TreeModelListener;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.DefaultTreeModel;
import javax.swing.tree.TreeModel;
import javax.swing.tree.TreePath;
import tjacobs.ui.WindowUtilities;
public class HiddenNodeTreeModel implements TreeModel {
TreeModel mModel;
ArrayList<Object> mHidden = new ArrayList<Object>();
public HiddenNodeTreeModel (TreeModel model) {
mModel = model;
public void addTreeModelListener(TreeModelListener arg0) {
mModel.addTreeModelListener(arg0);
private ArrayList<Integer> getHiddenChildren(Object parent) {
ArrayList<Integer> spots = new ArrayList<Integer>();
Iterator _i = mHidden.iterator();
while (_i.hasNext()) {
Object hidden = _i.next();
int idx = mModel.getIndexOfChild(parent, hidden);
if (idx != -1) {
spots.add(idx);
return spots;
public Object getChild(Object arg0, int index) {
ArrayList<Integer> spots = getHiddenChildren(arg0);
Collections.sort(spots);
Iterator<Integer> _i = spots.iterator();
while (_i.hasNext()) {
int num = _i.next();
if (num <= index) {
index++;
return mModel.getChild(arg0, index);
public int getChildCount(Object arg0) {
ArrayList list = getHiddenChildren(arg0);
System.out.println("size = " + list.size());
return mModel.getChildCount(arg0) - list.size();
public int getIndexOfChild(Object arg0, Object arg1) {
int index = mModel.getIndexOfChild(arg0, arg1);
ArrayList<Integer> spots = getHiddenChildren(arg0);
Collections.sort(spots);
Iterator<Integer> _i = spots.iterator();
int toSub = 0;
while (_i.hasNext()) {
int num = _i.next();
if (num <= index) {
toSub++;
return index - toSub;
public Object getRoot() {
// TODO Auto-generated method stub
return mModel.getRoot();
public boolean isLeaf(Object arg0) {
// TODO Auto-generated method stub
return mModel.isLeaf(arg0);
public void removeTreeModelListener(TreeModelListener arg0) {
mModel.removeTreeModelListener(arg0);
public void valueForPathChanged(TreePath arg0, Object arg1) {
mModel.valueForPathChanged(arg0, arg1);
public void hideNode(Object node) {
if (node instanceof TreePath) {
node = ((TreePath)node).getLastPathComponent();
mHidden.add(node);
public void showNode(Object node) {
mHidden.remove(node);
public void showAll() {
mHidden.clear();
* @param args
public static void main(String[] args) {
// TODO Auto-generated method stub
DefaultMutableTreeNode A = new DefaultMutableTreeNode("A");
DefaultMutableTreeNode B = new DefaultMutableTreeNode("B");
DefaultMutableTreeNode C = new DefaultMutableTreeNode("C");
DefaultMutableTreeNode D = new DefaultMutableTreeNode("D");
DefaultMutableTreeNode E = new DefaultMutableTreeNode("E");
DefaultMutableTreeNode F = new DefaultMutableTreeNode("F");
A.add(B);
B.add(C);
B.add(D);
B.add(E);
E.add(F);
DefaultTreeModel model = new DefaultTreeModel(A);
final HiddenNodeTreeModel hmodel = new HiddenNodeTreeModel(model);
final JTree tree = new JTree(hmodel);
JFrame jf = new JFrame("HiddenNodeTreeModel Test");
jf.add(tree);
JMenuBar bar = new JMenuBar();
jf.setJMenuBar(bar);
JMenu menu = new JMenu("Options");
bar.add(menu);
final JMenuItem hide = new JMenuItem("Hide");
final JMenuItem show = new JMenuItem("ShowAll");
menu.add(hide);
menu.add(show);
ActionListener al = new ActionListener() {
public void actionPerformed(ActionEvent ae) {
if (ae.getSource() == hide) {
hmodel.hideNode(tree.getSelectionPath());
tree.updateUI();
else {
hmodel.showAll();
tree.updateUI();
hide.addActionListener(al);
show.addActionListener(al);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jf.setBounds(100,100,100,100);
jf.setVisible(true);
} -
Problem in NODE 1 after reboot
Hi,
Oracle Version:11gR2
Operating System:Cent Os
Hi we have some problem in node 1 after sudden reboot of both the nodes when the servers are up the database in node 2 started automatically but in node 1 we started manually.
But inthe CRSCTL command it is showing that node 1 database is down as show below.
[root@rac1 bin]# ./crsctl stat res -t
NAME TARGET STATE SERVER STATE_DETAILS
Local Resources
ora.ASM_DATA.dg
ONLINE ONLINE rac1
ONLINE ONLINE rac2
ora.ASM_FRA.dg
ONLINE ONLINE rac1
ONLINE ONLINE rac2
ora.LISTENER.lsnr
ONLINE ONLINE rac1
ONLINE ONLINE rac2
ora.OCR_VOTE.dg
ONLINE ONLINE rac1
ONLINE ONLINE rac2
ora.asm
ONLINE ONLINE rac1 Started
ONLINE ONLINE rac2 Started
ora.eons
ONLINE ONLINE rac1
ONLINE ONLINE rac2
ora.gsd
OFFLINE OFFLINE rac1
OFFLINE OFFLINE rac2
ora.net1.network
ONLINE ONLINE rac1
ONLINE ONLINE rac2
ora.ons
ONLINE ONLINE rac1
ONLINE ONLINE rac2
ora.registry.acfs
ONLINE ONLINE rac1
ONLINE ONLINE rac2
Cluster Resources
ora.LISTENER_SCAN1.lsnr
1 ONLINE ONLINE rac2
ora.LISTENER_SCAN2.lsnr
1 ONLINE ONLINE rac1
ora.LISTENER_SCAN3.lsnr
1 ONLINE ONLINE rac1
ora.oc4j
1 OFFLINE OFFLINE
ora.qfundrac.db
1 OFFLINE OFFLINE
2 ONLINE ONLINE rac2 Open
ora.rac1.vip
1 ONLINE ONLINE rac1
ora.rac2.vip
1 ONLINE ONLINE rac2
ora.scan1.vip
1 ONLINE ONLINE rac2
ora.scan2.vip
1 ONLINE ONLINE rac1
ora.scan3.vip
1 ONLINE ONLINE rac1but for the below command it is showing both the nodes are up
SQL> select inst_id,status,instance_role,active_state from gv$instance;
INST_ID STATUS INSTANCE_ROLE ACTIVE_ST
1 OPEN PRIMARY_INSTANCE NORMAL
2 OPEN PRIMARY_INSTANCE NORMALhere is the output for cluvfy .
[grid@rac1 bin]$ ./cluvfy stage -post crsinst -n rac1,rac2 -verbose
Performing post-checks for cluster services setup
Checking node reachability...
Check: Node reachability from node "rac1"
Destination Node Reachable?
rac2 yes
rac1 yes
Result: Node reachability check passed from node "rac1"
Checking user equivalence...
Check: User equivalence for user "grid"
Node Name Comment
rac2 passed
rac1 passed
Result: User equivalence check passed for user "grid"
Checking time zone consistency...
Time zone consistency check passed.
Checking Cluster manager integrity...
Checking CSS daemon...
Node Name Status
rac2 running
rac1 running
Oracle Cluster Synchronization Services appear to be online.
Cluster manager integrity check passed
UDev attributes check for OCR locations started...
Result: UDev attributes check passed for OCR locations
UDev attributes check for Voting Disk locations started...
Result: UDev attributes check passed for Voting Disk locations
Check default user file creation mask
Node Name Available Required Comment
rac2 0022 0022 passed
rac1 0022 0022 passed
Result: Default user file creation mask check passed
Checking cluster integrity...
Node Name
rac1
rac2
Cluster integrity check passed
Checking OCR integrity...
Checking the absence of a non-clustered configuration...
All nodes free of non-clustered, local-only configurations
ASM Running check passed. ASM is running on all cluster nodes
Checking OCR config file "/etc/oracle/ocr.loc"...
OCR config file "/etc/oracle/ocr.loc" check successful
Disk group for ocr location "+OCR_VOTE" available on all the nodes
Checking size of the OCR location "+OCR_VOTE" ...
Size check for OCR location "+OCR_VOTE" successful...
Size check for OCR location "+OCR_VOTE" successful...
WARNING:
This check does not verify the integrity of the OCR contents. Execute 'ocrcheck' as a privileged user to verify the contents of OCR.
OCR integrity check passed
Checking CRS integrity...
The Oracle clusterware is healthy on node "rac2"
The Oracle clusterware is healthy on node "rac1"
CRS integrity check passed
Checking node application existence...
Checking existence of VIP node application
Node Name Required Status Comment
rac2 yes online passed
rac1 yes online passed
Result: Check passed.
Checking existence of ONS node application
Node Name Required Status Comment
rac2 no online passed
rac1 no online passed
Result: Check passed.
Checking existence of GSD node application
Node Name Required Status Comment
rac2 no does not exist ignored
rac1 no does not exist ignored
Result: Check ignored.
Checking existence of EONS node application
Node Name Required Status Comment
rac2 no online passed
rac1 no online passed
Result: Check passed.
Checking existence of NETWORK node application
Node Name Required Status Comment
rac2 no online passed
rac1 no online passed
Result: Check passed.
Checking Single Client Access Name (SCAN)...
SCAN VIP name Node Running? ListenerName Port Running?
qfund-rac.qfund.net rac2 true LISTENER 1521 true
Checking name resolution setup for "qfund-rac.qfund.net"...
SCAN Name IP Address Status Comment
qfund-rac.qfund.net 192.168.8.118 passed
qfund-rac.qfund.net 192.168.8.119 passed
qfund-rac.qfund.net 192.168.8.117 passed
Verification of SCAN VIP and Listener setup passed
OCR detected on ASM. Running ACFS Integrity checks...
Starting check to see if ASM is running on all cluster nodes...
ASM Running check passed. ASM is running on all cluster nodes
Starting Disk Groups check to see if at least one Disk Group configured...
Disk Group Check passed. At least one Disk Group configured
Task ACFS Integrity check passed
Checking Oracle Cluster Voting Disk configuration...
Oracle Cluster Voting Disk configuration check passed
Checking to make sure user "grid" is not in "root" group
Node Name Status Comment
rac2 does not exist passed
rac1 does not exist passed
Result: User "grid" is not part of "root" group. Check passed
Checking if Clusterware is installed on all nodes...
Check of Clusterware install passed
Checking if CTSS Resource is running on all nodes...
Check: CTSS Resource running on all nodes
Node Name Status
rac2 passed
rac1 passed
Result: CTSS resource check passed
Querying CTSS for time offset on all nodes...
Result: Query of CTSS for time offset passed
Check CTSS state started...
Check: CTSS state
Node Name State
rac2 Observer
rac1 Observer
CTSS is in Observer state. Switching over to clock synchronization checks using NTP
Starting Clock synchronization checks using Network Time Protocol(NTP)...
NTP Configuration file check started...
The NTP configuration file "/etc/ntp.conf" is available on all nodes
NTP Configuration file check passed
Checking daemon liveness...
Check: Liveness for "ntpd"
Node Name Running?
rac2 yes
rac1 yes
Result: Liveness check passed for "ntpd"
Checking NTP daemon command line for slewing option "-x"
Check: NTP daemon command line
Node Name Slewing Option Set?
rac2 yes
rac1 yes
Result:
NTP daemon slewing option check passed
Checking NTP daemon's boot time configuration, in file "/etc/sysconfig/ntpd", for slewing option "-x"
Check: NTP daemon's boot time configuration
Node Name Slewing Option Set?
rac2 yes
rac1 yes
Result:
NTP daemon's boot time configuration check for slewing option passed
NTP common Time Server Check started...
NTP Time Server ".INIT." is common to all nodes on which the NTP daemon is running
NTP Time Server ".LOCL." is common to all nodes on which the NTP daemon is running
Check of common NTP Time Server passed
Clock time offset check from NTP Time Server started...
Checking on nodes "[rac2, rac1]"...
Check: Clock time offset from NTP Time Server
Time Server: .INIT.
Time Offset Limit: 1000.0 msecs
Node Name Time Offset Status
rac2 0.0 passed
rac1 0.0 passed
Time Server ".INIT." has time offsets that are within permissible limits for nodes "[rac2, rac1]".
Time Server: .LOCL.
Time Offset Limit: 1000.0 msecs
Node Name Time Offset Status
rac2 -29.328 passed
rac1 -84.385 passed
Time Server ".LOCL." has time offsets that are within permissible limits for nodes "[rac2, rac1]".
Clock time offset check passed
Result: Clock synchronization check using Network Time Protocol(NTP) passed
Oracle Cluster Time Synchronization Services check passed
Post-check for cluster services setup was successful.
[grid@rac1 bin]$Please help me how to solve this problem.
Thanks & regards
Poorna Prasad.SHi All,
Now again i reboothed the database again manually and the database is no up on both the node.
Here is the output for few commands
[grid@rac1 bin]$ ./crs_stat -t
Name Type Target State Host
ora....DATA.dg ora....up.type OFFLINE OFFLINE
ora.ASM_FRA.dg ora....up.type OFFLINE OFFLINE
ora....ER.lsnr ora....er.type ONLINE ONLINE rac1
ora....N1.lsnr ora....er.type ONLINE ONLINE rac1
ora....N2.lsnr ora....er.type ONLINE ONLINE rac2
ora....N3.lsnr ora....er.type ONLINE ONLINE rac2
ora....VOTE.dg ora....up.type ONLINE ONLINE rac1
ora.asm ora.asm.type ONLINE ONLINE rac1
ora.eons ora.eons.type ONLINE ONLINE rac1
ora.gsd ora.gsd.type OFFLINE OFFLINE
ora....network ora....rk.type ONLINE ONLINE rac1
ora.oc4j ora.oc4j.type OFFLINE OFFLINE
ora.ons ora.ons.type ONLINE ONLINE rac1
ora....drac.db ora....se.type OFFLINE OFFLINE
ora....SM1.asm application ONLINE ONLINE rac1
ora....C1.lsnr application ONLINE ONLINE rac1
ora.rac1.gsd application OFFLINE OFFLINE
ora.rac1.ons application ONLINE ONLINE rac1
ora.rac1.vip ora....t1.type ONLINE ONLINE rac1
ora....SM2.asm application ONLINE ONLINE rac2
ora....C2.lsnr application ONLINE ONLINE rac2
ora.rac2.gsd application OFFLINE OFFLINE
ora.rac2.ons application ONLINE ONLINE rac2
ora.rac2.vip ora....t1.type ONLINE ONLINE rac2
ora....ry.acfs ora....fs.type ONLINE ONLINE rac1
ora.scan1.vip ora....ip.type ONLINE ONLINE rac1
ora.scan2.vip ora....ip.type ONLINE ONLINE rac2
ora.scan3.vip ora....ip.type ONLINE ONLINE rac2
[grid@rac1 bin]$ srvctl status nodeapps -n rac1,rac2
-bash: srvctl: command not found
[grid@rac1 bin]$ ./srvctl status nodeapps -n rac1,rac2
PRKO-2003 : Invalid command line option value: rac1,rac2
[grid@rac1 bin]$ ./srvctl status nodeapps -n rac1
-n <node_name> option has been deprecated.
VIP rac1-vip is enabled
VIP rac1-vip is running on node: rac1
Network is enabled
Network is running on node: rac1
GSD is disabled
GSD is not running on node: rac1
ONS is enabled
ONS daemon is running on node: rac1
eONS is enabled
eONS daemon is running on node: rac1
[grid@rac1 bin]$ ./srvctl status nodeapps -n rac2
-n <node_name> option has been deprecated.
VIP rac2-vip is enabled
VIP rac2-vip is running on node: rac2
Network is enabled
Network is running on node: rac2
GSD is disabled
GSD is not running on node: rac2
ONS is enabled
ONS daemon is running on node: rac2
eONS is enabled
eONS daemon is running on node: rac2Here is the output for crsctl stat res -t
[grid@rac1 bin]$ ./crsctl stat res -t
NAME TARGET STATE SERVER STATE_DETAILS
Local Resources
ora.ASM_DATA.dg
OFFLINE OFFLINE rac1
OFFLINE OFFLINE rac2
ora.ASM_FRA.dg
OFFLINE OFFLINE rac1
OFFLINE OFFLINE rac2
ora.LISTENER.lsnr
ONLINE ONLINE rac1
ONLINE ONLINE rac2
ora.OCR_VOTE.dg
ONLINE ONLINE rac1
ONLINE ONLINE rac2
ora.asm
ONLINE ONLINE rac1 Started
ONLINE ONLINE rac2 Started
ora.eons
ONLINE ONLINE rac1
ONLINE ONLINE rac2
ora.gsd
OFFLINE OFFLINE rac1
OFFLINE OFFLINE rac2
ora.net1.network
ONLINE ONLINE rac1
ONLINE ONLINE rac2
ora.ons
ONLINE ONLINE rac1
ONLINE ONLINE rac2
ora.registry.acfs
ONLINE ONLINE rac1
ONLINE ONLINE rac2
Cluster Resources
ora.LISTENER_SCAN1.lsnr
1 ONLINE ONLINE rac1
ora.LISTENER_SCAN2.lsnr
1 ONLINE ONLINE rac2
ora.LISTENER_SCAN3.lsnr
1 ONLINE ONLINE rac2
ora.oc4j
1 OFFLINE OFFLINE
ora.qfundrac.db
1 OFFLINE OFFLINE
2 OFFLINE OFFLINE
ora.rac1.vip
1 ONLINE ONLINE rac1
ora.rac2.vip
1 ONLINE ONLINE rac2
ora.scan1.vip
1 ONLINE ONLINE rac1
ora.scan2.vip
1 ONLINE ONLINE rac2
ora.scan3.vip
1 ONLINE ONLINE rac2What is going wrong here .
Thanks & Regards,
Poorna Prasad.S
Edited by: SIDDABATHUNI on Apr 30, 2011 2:06 PM
Edited by: SIDDABATHUNI on Apr 30, 2011 2:10 PM -
JTree Nodes with the same name
What do I have to do to get the JTree to render nodes with the same name? These Nodes user objects are completely different object types and each has a unique hashcode.
+ Root Node
+-- node1 (this is a folder)
+-- node1 (this is a file)
The problem is I have n folders in my tree but if a parent folder contains a folder and a file with the same name then no other subfolders are displayed.
The nodes exist in memory because I enumerate the tree and display its contents in System.out.
Thanks in advance!
MattThank you to everyone that responded. I solved the issue. It was a timing issue...here's my original method:
private void renderProductFolder(SubFolder sf){
try{
WTPart part = QueryHelper.service.findWTPart("number", sf.getNam());
WTTreeNode node = buildWTTreeNode(part);
super.getTreeModel().setRoot(node);
renderTree(node, sf); // This is the problem call
super.getSelectionModel().
setSelectionPath(new TreePath(node.getPath()));
super.expandPath(new TreePath(node.getPath()));
}catch(Exception ex){
ex.printStackTrace();
Here is the fix:
private void renderProductFolder(SubFolder sf){
try{
WTPart part = QueryHelper.service.findWTPart("number", sf.getNam());
WTTreeNode node = buildWTTreeNode(part);
renderTree(node, sf); // This was the problem call
super.getTreeModel().setRoot(node);
super.getSelectionModel().
setSelectionPath(new TreePath(node.getPath()));
super.expandPath(new TreePath(node.getPath()));
}catch(Exception ex){
ex.printStackTrace();
I was originally building the root node, then setting it as the root, then adding additional nodes to the root in the call to renderTree(). So the fix was to build the complete tree structure and then call setRoot(). Otherwise the tree doesn't automatically paint the nodes when they're added via node.add(nodeChild).
It was just a coincidence that I discovered this problem with nodes having the same name.
Thanks for all your great input!
Matt
Maybe you are looking for
-
How to get multiple records in one row and different column
Hi All, I am using oracle database 11g and i have a two tables table_1, table_2 table_1 having columns emp_no first_name middle_name last_name email and table_2 having columns emp_no phone_type phone_number and having entires emp_no phone_type phone_
-
Unique ID generation in OIM 11.1.1.5
Dear All, I would like to generate the automatic unique ID during the user creation in OIM 11.1.1.5. Can any one please suggest me to do the customization for it and share some documents which can be helpful to me. Thanks Harry Edited by: Harry-Harry
-
1st ical sync with iphone...all events off by 2 hours
Why? All ical events got transferred to my iphone but the time is off by 2 hours...all iphone events are showing up 2 hours later than when I originally scheduled them in my iMac ical program (the ical events on my iMac are still displaying at the co
-
Linking 3rd Party Vendor invoice to customer invoice
Hi Guys, We have a requirement in 3rd party order processing. Client wants us to link the vendor invoice to the customer invoice. For example, in a 3rd party order, the customers orders 100 qty of MATERIAL A. Then a PR, PO is generated for 100 qty. V
-
.pdf icons saved as 'plain text' style on desktop
Acrobat 8 Pro Windows Vista Home Premium SP1 Hello Forum, As suject, with the new Acrobat 8 Pro, my saved pdf files (pdf icons on desktop) are showing as 'plain text' view style. How do i make them back to the classic .pdf style. Thanks