jackrabbit-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From sstrickland <sstrickl...@costco.com>
Subject Creating Nodes is Excruciatingly Slow
Date Wed, 11 Apr 2007 02:38:48 GMT

I use a db2 database on an iSeries (AS400) to store my project.  I connect
just fine, and I can create nodes, child nodes and grandchild nodes, along
with appropriate properties.  It's just that it is so very slow.  20-30
seconds per node!  Am I doing anything wrong?

The controlling methods are:

	public Node createNode(Session session, Node node, String name, String
text, String type) {
		SetupNode sn = new SetupNode();		
		Node node1 = null;
		
		try {
			// Create node
			if (!node.hasNode(name)) {
				node1 = sn.setupNode(session, node, name, true);
			} else {
				node1 = node.getNode(name);
			}
			
			// Set properties
			node1.setProperty("text", text);
			node1.setProperty("type", type);
			session.save();

		} catch (Exception e) {
			e.printStackTrace();
		}
		return node1;
	}

                // NOTE...THIS METHOD IS IN A COMMON CLASS... SetupNode()
                public Node setupNode(Session session, Node parent, String
child, boolean version) {

		// Node Attributes
		final String VERSIONABLE = "mix:versionable";
		final String REFERENCEABLE = "mix:referenceable";
		Node childNode = null;

		try {
			// Don't checkout root node
			if (!parent.isNodeType("rep:root")) {
				parent.checkout();
			}

			// Add node, if needed
			if (!parent.hasNode(child)) {
				childNode = parent.addNode(child);
			} else {
				childNode = parent.getNode(child);	
			}
			// Set node attributes
			
			if (!childNode.isNodeType(REFERENCEABLE)) {
				childNode.addMixin(REFERENCEABLE);
			}
			// Is node versioned?
			if (version) {
				if (!childNode.isNodeType(VERSIONABLE)) {
					childNode.addMixin(VERSIONABLE);
				}
			}
			// Save/Checkin child node
			session.save();
			childNode.checkin();

			// Checkin parent node
			if (!parent.isNodeType("rep:root")) {
				parent.checkin();
			}

		} catch (Exception e) {
			e.printStackTrace();
		}

		return childNode;
	}
	


-- 
View this message in context: http://www.nabble.com/Creating-Nodes-is-Excruciatingly-Slow-tf3556976.html#a9932243
Sent from the Jackrabbit - Dev mailing list archive at Nabble.com.


Mime
View raw message