55
www.novell.com Avoiding the Top DirXML Issues Sandy Swanson WSS Engineer Novell, Inc. [email protected]

Www.novell.com Avoiding the Top DirXML ™ Issues Sandy Swanson WSS Engineer Novell, Inc. [email protected]

Embed Size (px)

Citation preview

Page 1: Www.novell.com Avoiding the Top DirXML ™ Issues Sandy Swanson WSS Engineer Novell, Inc. sswanson@novell.com

www.novell.com

Avoiding the Top DirXML™ IssuesAvoiding the Top DirXML™ Issues

Sandy SwansonWSS EngineerNovell, [email protected]

Page 2: Www.novell.com Avoiding the Top DirXML ™ Issues Sandy Swanson WSS Engineer Novell, Inc. sswanson@novell.com

Vision…one NetA world where networks of all types—corporate and public, intranets, extranets, and the Internet—work together as one Net and securely connect employees, customers, suppliers, and partners across organizational boundaries

MissionTo solve complex business and technical challenges with Net business solutions that enable people, processes, and systems to work together and our customers to profit from the opportunities of a networked world

Page 3: Www.novell.com Avoiding the Top DirXML ™ Issues Sandy Swanson WSS Engineer Novell, Inc. sswanson@novell.com
Page 4: Www.novell.com Avoiding the Top DirXML ™ Issues Sandy Swanson WSS Engineer Novell, Inc. sswanson@novell.com

Agenda

• Troubleshooting tools Trace Commands and Trace Files NXSL Processor Troubleshooting methodology Troubleshooting sample How to read a trace log

Page 5: Www.novell.com Avoiding the Top DirXML ™ Issues Sandy Swanson WSS Engineer Novell, Inc. sswanson@novell.com

Trace Commands and Trace Files

• Trace options DSTRACE.NLM

• Easy and familiar• It can slow down DirXML™ if used excessively

iMonitor• Easy to use and will display real-time activity remotely• May truncate large XML documents (versions prior to 1.5) so it

may not be suitable for detailed troubleshooting Javatrace File

• Won’t show real-time activity• Won’t show details about cache files, driver start and stop• No auto-roll or Max size so it can fill your drive if not monitored• Best option for detailed troubleshooting of driver functionality

Page 6: Www.novell.com Avoiding the Top DirXML ™ Issues Sandy Swanson WSS Engineer Novell, Inc. sswanson@novell.com

Trace Commands and Trace Files (cont.)

• Trace levels are set on the driver-set (not per driver) DirXML-DriverTraceLevel is used to troubleshoot driver issues DirXML-XSLTTraceLevel is used to troubleshoot XSLT issues (don’t

use unless you are developing or troubleshooting stylesheet code)

• How to enable Trace Levels• DirXML-XSLTTraceLevel can be interchanged with DirXML-

DriverTraceLevel in the following instructions• In ConsoleOne®, right-click a DirXML-Driver Set object

• Click Properties > Other• Double-click DirXML-DriverTraceLevel in the Attributes list• If DirXML DriverTraceLevel doesn’t appear in the Attribute list, click Add

and select the attribute• Enter 0 to 3 in the text box below DirXML-DriverTraceLevel

Page 7: Www.novell.com Avoiding the Top DirXML ™ Issues Sandy Swanson WSS Engineer Novell, Inc. sswanson@novell.com

XSLT Trace Level Details

Value Description

0 No trace messages are displayed or logged

1Trace source node processing, output to

standard error

2 Trace the above plus rule instantiations

3 Trace the above plus template instantiations

4Trace the above plus rule matching and

select expression details

Page 8: Www.novell.com Avoiding the Top DirXML ™ Issues Sandy Swanson WSS Engineer Novell, Inc. sswanson@novell.com

DVRS Trace Level Details

Value Description

0No trace messages are displayed or

logged

1 Basic trace messages are displayed

and logged

2Level 1 messages and the contents of

XML documents used during event processing are displayed and logged

3Level 2 messages and extensive rule

processing messages are displayed and logged

Page 9: Www.novell.com Avoiding the Top DirXML ™ Issues Sandy Swanson WSS Engineer Novell, Inc. sswanson@novell.com

Trace Commands and Trace Files

• DSTrace Commands NetWare®

• LOAD DSTRACE• DSTRACE –ALL• DSTRACE + DVRS (to troubleshoot Drivers)• DSTRACE + DXML (to troubleshoot XSLT Code)• DSTRACE file on (to log to sys:system\dstrace.dbg)• DSTRACE screen on (to display live trace on server

console)

Page 10: Www.novell.com Avoiding the Top DirXML ™ Issues Sandy Swanson WSS Engineer Novell, Inc. sswanson@novell.com

Trace Commands and Trace Files (cont.)

• DSTrace Commands NetWare

• LOAD DSTRACE• DSTRACE –ALL• DSTRACE + DVRS (to troubleshoot Drivers)• DSTRACE + DXML (to troubleshoot XSLT Code)• DSTRACE file on (to log to sys:system\dstrace.dbg)• DSTRACE screen on (to display live trace on server

console)

Page 11: Www.novell.com Avoiding the Top DirXML ™ Issues Sandy Swanson WSS Engineer Novell, Inc. sswanson@novell.com

Trace Commands and Trace Files (cont.)

• DSTrace Commands Windows NT/2000

• Start DSTRACE.DLM from Novell eDirectory™ Services (NDSCONS.EXE)

• Edit, Options, Clear All• Check DirXML Drivers (to troubleshoot Drivers)• Check DirXML (to troubleshoot XSLT

Code)• File, New, enter File Name (to log to file)

Page 12: Www.novell.com Avoiding the Top DirXML ™ Issues Sandy Swanson WSS Engineer Novell, Inc. sswanson@novell.com

Trace Commands and Trace Files (cont.)

• DSTrace Commands UNIX/Linux

• start ndstrace• set dstrace = nodebug (to clear all other trace

options)• set dstrace = + dvrs (to troubleshoot Drivers)• set dstrace = + dxml (to troubleshoot XSLT Code)• Dstrace file on (to log to file

/var/nds/DSTRACE.LOG)

Page 13: Www.novell.com Avoiding the Top DirXML ™ Issues Sandy Swanson WSS Engineer Novell, Inc. sswanson@novell.com

Trace Commands and Trace Files (cont.)

• How to enable Java Trace File• In ConsoleOne, right-click a DirXML-Driver Set object• Click Properties > Other• Double-click DirXML-JavaTraceFile in the Attributes list• If DirXML-JavaTraceFile doesn’t appear in the Attribute list,

click• Add and select the attribute• Enter the path in the text box below DirXML- JavaTraceFile

– On NetWare use volume:/path/filename (i.e. SYS:TEMP\JAVATRACE.TXT)

– On Win32 use Drive:\path\filename (i.e. C:\temp\JAVATRACE.TXT)– On UNIX use /path/path/filename (i.e. /var/nds/JAVATRACE.TXT)

Page 14: Www.novell.com Avoiding the Top DirXML ™ Issues Sandy Swanson WSS Engineer Novell, Inc. sswanson@novell.com

NXSL Processor

• The NXSL Processor provides the ability to use Novell XSL Processor outside DirXML

• To run the NXSL processor, perform the following steps1. Install JRE 1.3.1 from Sun Microsystems2. Copy RT.JAR, NXSL.JAR, COLLECTIONS.JAR and XP.JAR into a directory 3. Copy the following text into a batch file in your NXSL Directory

• @echo off• setlocal• rem set JAVA_HOME to your JRE or JDK directory• SET JAVA_HOME=C:\jdk1.3.1_01\jre• SET NXSL_JARS=C:\novell\xsl• rem set NXSL_JARS to the location containing nxsl.jar, xp.jar, and

collections.jar• set CLASSPATH=%JAVA_HOME%\lib\rt.jar• set CLASSPATH=%CLASSPATH%;%NXSL_JARS%\nxsl.jar;%NXSL_JARS%\

collections.jar• set CLASSPATH=%CLASSPATH%;%NXSL_JARS%\xp.jar• set nxsl=%JAVA_HOME%\bin\java -classpath %CLASSPATH% com.novell.xsl.nxsl• %nxsl% -e1 %1 %2 %3 %4 %5 %6 %7 %8• endlocal

Page 15: Www.novell.com Avoiding the Top DirXML ™ Issues Sandy Swanson WSS Engineer Novell, Inc. sswanson@novell.com

NXSL Processor (cont.)

• Use NXSL Processor to troubleshoot the following

Validate XSLT Logic Check for well formed XML/XSLT documents Test stylesheet in different event types and

scenarios to ensure that all events are handled Test stylesheets without affecting

production/test tree

Page 16: Www.novell.com Avoiding the Top DirXML ™ Issues Sandy Swanson WSS Engineer Novell, Inc. sswanson@novell.com

NXSL Processor (cont.)

• Don’t use NXSL Processor to troubleshoot the following

Stylesheets with Queries in them Check for well-formed XDS documents Test Rules/Stylesheet interaction Not valid for end-to-end testing

• Only testing the XSLT logic• Not testing Application/eDirectory-specific issues

Page 17: Www.novell.com Avoiding the Top DirXML ™ Issues Sandy Swanson WSS Engineer Novell, Inc. sswanson@novell.com

NXSL Processor (cont.)

• To process a source XML document with a stylesheet

• nxsl source.xml stylesheet.xsl• Will output Result tree to Standard Out

• nxsl –o result.xml source.xml stylesheet.xsl• Will output Result tree to file RESULT.XML

• nxsl –d[1-4] source.xml stylesheet.xsl• Will generate detailed trace messages (see XSLTTracelevel

for description)

Page 18: Www.novell.com Avoiding the Top DirXML ™ Issues Sandy Swanson WSS Engineer Novell, Inc. sswanson@novell.com

Troubleshooting Methodology Identify general issue Understand DirXML environment Understand general driver functionality Generate trace file Review trace file carefully Identify error and its cause Identify possible solutions

• At any point, if you have a strong hunch (based on your experience or knowledge) spend a few minutes following that hunch but always return to the method if that hunch does not pan out; don’t get side tracked by it

• Remember to use the KIS principle “Keep It Simple;” most problems when broken down are one to many simple problems

Page 19: Www.novell.com Avoiding the Top DirXML ™ Issues Sandy Swanson WSS Engineer Novell, Inc. sswanson@novell.com

Troubleshooting Methodology (cont.) Identify general issue

• Driver not starting• Driver stopping unexpectedly• Rules not functioning as expected• Stylesheets not functioning as expected• Unexpected output/results• Unexpected eDirectory Error Codes• Identify/isolate what action causes the issue (important)

– Starting driver– Stopping driver– Creating users– Deleting users– Moving users– Running driver for specific amount of time

Page 20: Www.novell.com Avoiding the Top DirXML ™ Issues Sandy Swanson WSS Engineer Novell, Inc. sswanson@novell.com

Troubleshooting Methodology (cont.)

• Understand DirXML environment Identify platform/product versions in use Identify DirXML Drivers in use Understand basic data flow Identify outstanding eDirectory issues (if

applicable) Understand Replica Placement Obtain Driver Exports and import into Test Tree

for review

Page 21: Www.novell.com Avoiding the Top DirXML ™ Issues Sandy Swanson WSS Engineer Novell, Inc. sswanson@novell.com

Troubleshooting Methodology (cont.)

• Understand general driver functionality Review driver exports/documentation

• Understand functionality that each stylesheet/rule provides

• Understand filter configuration

Match action that caused error with driver that caused it• Identify Channel that causes the error • Identify the stylesheet/rule that is likely causing the

error

Page 22: Www.novell.com Avoiding the Top DirXML ™ Issues Sandy Swanson WSS Engineer Novell, Inc. sswanson@novell.com

Troubleshooting Methodology (cont.)

• Generate trace file Identify trace method (dstrace, javatrace or iMonitor) Identify trace flags (DXML or DVRS) Identify trace level that is needed If eDirectory to eDirectory, you may need traces from

both sides Don’t assume default configuration is used, always ask Isolate trace to specific driver

• Turn off any drivers that are not causing the issue• Try and limit the trace to to specific action that causes the

issue (as identified previously)

Perform action that causes issue and then stop trace

Page 23: Www.novell.com Avoiding the Top DirXML ™ Issues Sandy Swanson WSS Engineer Novell, Inc. sswanson@novell.com

Troubleshooting Methodology (cont.)

• Review trace file carefully Find error message in trace and see if you can determine the

cause from that message alone; if not, continue below Find beginning of action that caused the error Compare contents with stylesheets/rules as they are

instantiated Try and understand each segment of the trace before moving

to the next segment Don’t assume it’s OK just because the error happens later Don’t assume it’s normal unless you are certain that it is If you don’t see the error or cause then you may need to

review the steps taken to isolate the trace (may have been too restrictive)

Page 24: Www.novell.com Avoiding the Top DirXML ™ Issues Sandy Swanson WSS Engineer Novell, Inc. sswanson@novell.com

Troubleshooting Methodology (cont.)

• After identifying error and its cause Identify if error is caused by

• Application• eDirectory• Rules• Driver• Stylesheet• Environment (replica placement, infrastructure, etc.)

If possible, review findings with developer of solution

Identify if the issue is a fundamental flaw in solution design or is it a simple oversight

Page 25: Www.novell.com Avoiding the Top DirXML ™ Issues Sandy Swanson WSS Engineer Novell, Inc. sswanson@novell.com

Troubleshooting Methodology (cont.)

• Identify possible solutions Identify all possible methods of resolving the issue Identify ramifications of each resolution If issue is fundamental design flaw be sure that the

appropriate people are notified and involved in the resolution

Make sure you are qualified to determine proper solution (if not, you must involve appropriate individuals)

Make sure you plug your resolution into the overall picture

Once you’ve chosen a solution TEST, TEST and TEST some more before making the change in production

Page 26: Www.novell.com Avoiding the Top DirXML ™ Issues Sandy Swanson WSS Engineer Novell, Inc. sswanson@novell.com

Troubleshooting Methodology (cont.)

Error isreported

Any ideas?

Yes

Identifygeneral

issue

UnderstandDirXML

environment

No

UnderstandGeneralDriver

Functionality

Generate isolatedtrace log

Glanceat error

message

Yes

Carefully review trace

File withstylesheets

NoAny ideas?

Any ideas?

Yes

Review trace

Isolation—To narrow?

NoFollow your hunch and

verify

Were you correct? Have you tested it?

No

Yes

Page 27: Www.novell.com Avoiding the Top DirXML ™ Issues Sandy Swanson WSS Engineer Novell, Inc. sswanson@novell.com

DirXML Architecture

Applicationor

directoryor

database

eDirectorydatastore

DirX

ML

Join engine

Ap

plica

tion

Sh

im

eD

irecto

ry In

terfa

ce

Filter

M C P C 1.1 S O

Rules and stylesheets

C 1.1 P C M E S

Rules and stylesheets

xxxxx.ta

o

SubscriberSubscriber

E

I

eDirectoryevent

eDirectoryformatted

XML

ANF XML to

NDS XML

ANFformatted

XMLApply

to app

App event

ANFformatted

XML

NDS XML to

ANF XML

Filter

eDirectoryformatted

XML

Applyto

eDirectory PublisherPublisher

Page 28: Www.novell.com Avoiding the Top DirXML ™ Issues Sandy Swanson WSS Engineer Novell, Inc. sswanson@novell.com

Troubleshooting Sample

• Customer reports an error1. Ask customer to describe error (identify general issue)

Customer is sometimes getting -609 error when creating users

2. Does that mean anything to you?-609 error means Missing Mandatory Attributes, however, we don’t know what drivers

are in use and we don’t know why it only happens ‘sometimes’

3. Ask customer to describe environment and driver functionality

Customer is using eDirectory to eDirectory mirror (no custom stylesheets) on NetWare 5/DirXML 1.0

4. Are you ready to get a traceNo—customer said “sometimes” and you have not determined when

5. Ask customer to describe when error happensCustomer says users created in Tree-A are not created in Tree-B—users created

in Tree-B are created in Tree-A, however, modifications work both ways

Page 29: Www.novell.com Avoiding the Top DirXML ™ Issues Sandy Swanson WSS Engineer Novell, Inc. sswanson@novell.com

Troubleshooting Sample (cont.) 6. What trace do you think you need?

Since it only happens when creating users in Tree-A, let’s start with a trace on Tree-B side, of a user being created in Tree-A. Only need DVRS flag since there is no XSLT

7. Generate appropriate Trace

<nds dtdversion="1.1" ndsversion="8.5"> <source> <product version="1.1">DirXML</product> <contact>Novell, Inc.</contact> </source> <input> <add class-name="User" src-dn="\TREE-A\novell\Users\JDoe"> <add-attr attr-name="CN"> <value>JDoe</value> </add-attr> </add> </input></nds>Driver = \TRE-B\novell\servers\driver-set\NDSToNDS - Mirror Channel = publisher Object = \TREE-A\novell\Users\JDoe (\TREE-B\novell\users\JDoe)Message = createEntry: -609 ERR_MISSING_MANDATORY

Page 30: Www.novell.com Avoiding the Top DirXML ™ Issues Sandy Swanson WSS Engineer Novell, Inc. sswanson@novell.com

Troubleshooting Sample (cont.)

7. Glance at trace—does anything catch your eye?You notice that the <Add> document that is submitted to the engine is missing

the <Surname> attribute, which is generating the –609

8. Any clues?You should have guessed that since it’s eDirectory to eDirectory, both drivers

will have the same required attributes so the <surname> was certainly there when the user was created in Tree-A—something between the create in Tree-A and Tree-B is removing the <surname>

9. Next steps?Since Filters are generally used to remove specific attributes, your first step

would be to check them—since the error is only when creating users in Tree-A, you should check the Subscriber Filter in Tree-A and the Publisher Filter in Tree-B

You can also check the same log and see if the initial document had the <surname> which would indicate that the Tree-B Publisher Filter removed it—if the initial document did not have the <surname> then the Subscriber Filter in TREE-A removed it

Page 31: Www.novell.com Avoiding the Top DirXML ™ Issues Sandy Swanson WSS Engineer Novell, Inc. sswanson@novell.com

Troubleshooting Sample (cont.)

10.Review beginning of trace to confirm which filter

TRACE: NdsToNds Publisher - NDSToNDS - Mirror: Receiving...TRACE: NdsToNds Publisher - NDSToNDS - Mirror: Received.TRACE: NdsToNds Publisher - NDSToNDS - Mirror: XML Document:TRACE: <nds dtdversion="1.1" ndsversion="8.5"> <source> <product version="1.1">DirXML</product> <contact>Novell, Inc.</contact> </source> <input> <add class-name="User" src-dn="\TREE-A\novell\Users\JDoe"> <add-attr attr-name="Surname"> <value>Doe</value> </add-attr> <add-attr attr-name="CN"> <value>JDoe</value> </add-attr> </add> </input></nds>TRACE: Receiving DOM document from app

Since the Surname was present in initialdocument, the issuemust be caused byTREE-B PublisherFilter

Right?

Page 32: Www.novell.com Avoiding the Top DirXML ™ Issues Sandy Swanson WSS Engineer Novell, Inc. sswanson@novell.com

Troubleshooting Sample (cont.)

11.Check Publisher Filter to confirm your hunch

Oops!

Our hunch was wrong; Surname is present in the filter—we need to review trace with stylesheets

Page 33: Www.novell.com Avoiding the Top DirXML ™ Issues Sandy Swanson WSS Engineer Novell, Inc. sswanson@novell.com

Troubleshooting Sample (cont.)

12.Carefully review trace from topUpon careful review you find the following lines in your trace file

TRACE: Applying input transformations

TRACE: Applying input stylesheet

TRACE: Applying stylesheet based rule

TRACE: Rule stylesheet returned:

The statement was that “they had no custom stylesheets”

Yet we see DirXML applying an Input Transformation stylesheet

Page 34: Www.novell.com Avoiding the Top DirXML ™ Issues Sandy Swanson WSS Engineer Novell, Inc. sswanson@novell.com

Troubleshooting Sample (cont.)

<?xml version="1.0" encoding="UTF-8"?>

<xsl:stylesheet version="1.0"

xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="/">

<xsl:apply-templates select="node()|@*"/>

</xsl:template>

<xsl:template match="node()|@*">

<xsl:copy>

<xsl:apply-templates select="node()|@*"/>

</xsl:copy>

</xsl:template>

<xsl:template match="add-attr[@attr-name='Surname']"/>

</xsl:stylesheet>

13.Carefully review driver export of Tree-BUpon careful review you find the following Input Transformation Rule

Somebody added an Input Transformation Rule that filters out add add-attr elements for Surname

This is causing your -609

Page 35: Www.novell.com Avoiding the Top DirXML ™ Issues Sandy Swanson WSS Engineer Novell, Inc. sswanson@novell.com

Troubleshooting Sample (cont.)

14.Identify possible solutionsa) Remove that template from the Input Transformation Rule

Pro: Eliminate the root causeCon: Do you know why it was placed there to begin with? If not, then you can’t simply

remove it

b) Synthesize the Surname from another attributePro: NoneCon: Still don’t know the reason it was coded so any work around is suspect—in addition,

this particular solution is a kludge because you added significant code to work around a seemingly simple issue

15.Are you qualified implement the solution Unless you are the developer, you are not qualified to implement the solution

above since you don’t know what the initial intention was

16.Contact the DeveloperContact developer that was responsible for the initial deployment and engage

them in a discussion

Page 36: Www.novell.com Avoiding the Top DirXML ™ Issues Sandy Swanson WSS Engineer Novell, Inc. sswanson@novell.com

How to Read a Trace Log

• When carefully reviewing a trace, keep these in mind

Don’t assume anything is OK• You will learn with experience which errors are normal• Until then, investigate every error

Understand every line before proceeding to the next• Again, you will learn with experience what each line means• The best way to learn how the DirXML engine works is to analyze the

trace logs

Have the driver exports at hand• Have the driver-exports handy as you review the traces• Correlate the actions in the trace logs with the rules/stylesheets in

the export

Page 37: Www.novell.com Avoiding the Top DirXML ™ Issues Sandy Swanson WSS Engineer Novell, Inc. sswanson@novell.com

Sample Trace Log

• The next few slides will show a sample tracelog with no errors and explain the content

Page 38: Www.novell.com Avoiding the Top DirXML ™ Issues Sandy Swanson WSS Engineer Novell, Inc. sswanson@novell.com

Sample Trace Log—Subscriber

• Initial create of the user in the DIB• [01/07/02 12:13:17.912]: TRACE: Commit transaction requested• [01/07/02 12:21:36.196]: TRACE: Start transaction• [01/07/02 12:21:36.196]: TRACE: submitEvent requested• [01/07/02 12:21:36.196]: TRACE: event for attr: null• [01/07/02 12:21:36.196]: TRACE: created a DOM node for event• [01/07/02 12:21:36.196]: TRACE: submitEvent requested• [01/07/02 12:21:36.196]: TRACE: event for attr: ACL• [01/07/02 12:21:36.196]: TRACE: created a DOM node for event• ………• [01/07/02 12:21:36.416]: TRACE: Processing events for transaction• [01/07/02 12:21:36.416]: TRACE: Converting \NW6-TREE\novell\Users\James Dean from

Unknown to real base class

The above messages represent DirXML detecting changes to the eDirectory Database for which DirXML events must be generated—Once those changes are complete, DirXML will trigger it’s event to send down the Subscriber Channel

Page 39: Www.novell.com Avoiding the Top DirXML ™ Issues Sandy Swanson WSS Engineer Novell, Inc. sswanson@novell.com

Sample Trace Log—Subscriber (cont.)

• Once the user is created in the DIB, DirXML issues an event for that ADD

• <nds dtdversion="1.1" ndsversion="8.5">• <source>• <product version="1.1">DirXML</product>• <contact>Novell, Inc.</contact>• </source>• <input>• <add class-name="User" src-dn="\NW6-TREE\novell\Users\James Dean" src-entry-

id="33151“>• <add-attr attr-name="Surname" timestamp="1010424096#15">• <value timestamp="1010424096#15" type="string">Dean</value>• </add-attr>• <add-attr attr-name="Given Name" timestamp="1010424096#17">• <value timestamp="1010424096#17" type="string">Jimmy</value>• </add-attr>• <add-attr attr-name="CN" timestamp="1010424096#28">• <value timestamp="1010424096#28" type="string">James Dean</value>• </add-attr>• </add>• </input>• </nds>

Page 40: Www.novell.com Avoiding the Top DirXML ™ Issues Sandy Swanson WSS Engineer Novell, Inc. sswanson@novell.com

Sample Trace Log—Subscriber (cont.)

• DirXML now takes that add Document and sends it down the Subscriber channel, processing each rule as it hits that rule

• [01/07/02 12:21:36.416]: TRACE: No event transformation rule, skipping• [01/07/02 12:21:36.416]: TRACE: Subscriber processing add for \NW6-

TREE\novell\Users\James Dean

• (This is the Association Processor checking to make sure we synthesize an ADD event if this was a modify on an un-associated object)

• [01/07/02 12:21:36.416]: TRACE: Re-reading associations in case they changed since this event was queued

• (Double checking to see that the object is not associated)

• [01/07/02 12:21:36.416]: TRACE: No matching rule, skipping• [01/07/02 12:21:36.416]: TRACE: No create rule, skipping• [01/07/02 12:21:36.416]: TRACE: No placement rule, skipping• [01/07/02 12:21:36.470]: TRACE: Submitting add to subscriber shim

Page 41: Www.novell.com Avoiding the Top DirXML ™ Issues Sandy Swanson WSS Engineer Novell, Inc. sswanson@novell.com

Sample Trace Log—Subscriber (cont.)

• (Completed Channel specific transformation—Now DirXML applies the Schema and Output Transformation rules)

• [01/07/02 12:21:36.470]: TRACE: Applying output transformations• [01/07/02 12:21:36.470]: TRACE: Fixing up associations references• [01/07/02 12:21:36.470]: TRACE: No mapping rule, skipping• [01/07/02 12:21:36.470]: TRACE: No output stylesheet, skipping• [01/07/02 12:21:36.470]: TRACE: Submitting document to subscriber

shim• (Once all transformations are complete on this channel,

DirXML sends the transformed document to the Driver Shim to send to the remote database)

Page 42: Www.novell.com Avoiding the Top DirXML ™ Issues Sandy Swanson WSS Engineer Novell, Inc. sswanson@novell.com

Sample Trace Log—Subscriber (cont.)

• [01/07/02 12:21:36.470]: TRACE: NdsToNds Subscriber - NDSToNDS - Flat: Reusing connection.

• [01/07/02 12:21:36.470]: TRACE: NdsToNds Subscriber - NDSToNDS - Flat: Sending...

• [01/07/02 12:21:36.470]: TRACE: NdsToNds Subscriber - NDSToNDS - Flat: XML Document:

• [01/07/02 12:21:36.470]: TRACE:

• Again, just showing what the shim sent to the destination tree• <nds dtdversion="1.1" ndsversion="8.5">• <source>• <product version="1.1">DirXML</product>• <contact>Novell, Inc.</contact>• </source>• <input>• <add class-name="User" event-id="0" src-dn="\NW6-TREE\novell\Users\

James Dean" src-entry-id="33151">

Page 43: Www.novell.com Avoiding the Top DirXML ™ Issues Sandy Swanson WSS Engineer Novell, Inc. sswanson@novell.com

Sample Trace Log—Subscriber (cont.)

• <add-attr attr-name="Surname" timestamp="1010424096#15">• <value timestamp="1010424096#15" type="string">Dean</value>• </add-attr>• <add-attr attr-name="Given Name" timestamp="1010424096#17">• <value timestamp="1010424096#17" type="string">Jimmy</value>• </add-attr>• <add-attr attr-name="CN" timestamp="1010424096#28">• <value timestamp="1010424096#28" type="string">James

Dean</value>• </add-attr>• </add>• </input>• </nds>• (This is the document after all the transformation completed and as

it will appear to the remote database)

Page 44: Www.novell.com Avoiding the Top DirXML ™ Issues Sandy Swanson WSS Engineer Novell, Inc. sswanson@novell.com

Sample Trace Log—Subscriber (cont.)

• [01/07/02 12:21:36.470]: TRACE: NdsToNds Subscriber - NDSToNDS - Flat: Document sent.

• [01/07/02 12:21:36.470]: TRACE: NdsToNds Subscriber - NDSToNDS - Flat: Waiting for receive...

Now DirXML has send the document and waiting for a response—At this point, since it’s eDirectory to eDirectory we could pause here and read the other trace, since there may be some additional transformation done on that side

Page 45: Www.novell.com Avoiding the Top DirXML ™ Issues Sandy Swanson WSS Engineer Novell, Inc. sswanson@novell.com

Sample Trace Log—Publisher (cont.)

• [01/07/02 12:15:11.981]: TRACE: Commit transaction requested• [01/07/02 12:20:37.920]: TRACE: NdsToNds Publisher - NDSToNDS - Flat:

Receiving...• [01/07/02 12:20:37.930]: TRACE: NdsToNds Publisher - NDSToNDS - Flat:

Received.• [01/07/02 12:20:37.930]: TRACE: NdsToNds Publisher - NDSToNDS - Flat: XML

Document:• [01/07/02 12:20:37.950]: TRACE: • <nds dtdversion="1.1" ndsversion="8.5">• <source>• <product version="1.1">DirXML</product>• <contact>Novell, Inc.</contact>• </source>• <input>

Page 46: Www.novell.com Avoiding the Top DirXML ™ Issues Sandy Swanson WSS Engineer Novell, Inc. sswanson@novell.com

Sample Trace Log—Publisher (cont.)

• <add class-name="User" event-id="0" src-dn="\NW6-TREE\novell\Users\James Dean" src-entry-id="33151">

• <add-attr attr-name="Surname" timestamp="1010424096#15">• <value timestamp="1010424096#15" type="string">Dean</value>• </add-attr>• <add-attr attr-name="Given Name" timestamp="1010424096#17">• <value timestamp="1010424096#17" type="string">Jimmy</value>• </add-attr>• <add-attr attr-name="CN" timestamp="1010424096#28">• <value timestamp="1010424096#28" type="string">James

Dean</value>• </add-attr>• </add>• </input>• </nds>

Page 47: Www.novell.com Avoiding the Top DirXML ™ Issues Sandy Swanson WSS Engineer Novell, Inc. sswanson@novell.com

Sample Trace Log—Publisher (cont.)

• (Here DirXML starts applying the Input Transformation and Schema Mapping Rule, which are not present)

• [01/07/02 12:20:37.960]: TRACE: Applying input transformations• [01/07/02 12:20:37.970]: TRACE: No input stylesheet, skipping• [01/07/02 12:20:37.970]: TRACE: No mapping rule, skipping• [01/07/02 12:20:37.970]: TRACE: Resolving association references• [01/07/02 12:20:37.980]: TRACE: No event transformation rule, skipping

• (Here DirXML checks to see if this object is already associated)• [01/07/02 12:20:37.990]: TRACE: No associated objects• [01/07/02 12:20:37.990]: TRACE: Applying publisher filter• [01/07/02 12:20:37.990]: TRACE: Publisher processing add for \NW6-TREE\

novell\Users\James Dean

Page 48: Www.novell.com Avoiding the Top DirXML ™ Issues Sandy Swanson WSS Engineer Novell, Inc. sswanson@novell.com

Sample Trace Log—Publisher (cont.)

• (Here DirXML tries the matching rule, and queries NDS based on the matching rule)

• [01/07/02 12:20:37.990]: TRACE: Applying matching rule• [01/07/02 12:20:38.00]: TRACE: Pumping XDS to NDS• [01/07/02 12:20:38.10]: TRACE: Performing operation, op: query for: novell\Users• [01/07/02 12:20:38.10]: TRACE:

• (Since no results are returned, DirXML assumes that no match was found proceeds with the Create Rule)

• [01/07/02 12:20:38.10]: TRACE: No match found

• (The Create rule is checked and the ADD is not vetoed)• [01/07/02 12:20:38.10]: TRACE: Applying create rule• [01/07/02 12:20:38.10]: TRACE: Trying create rule 1• [01/07/02 12:20:38.10]: TRACE: Rule selected

Page 49: Www.novell.com Avoiding the Top DirXML ™ Issues Sandy Swanson WSS Engineer Novell, Inc. sswanson@novell.com

Sample Trace Log—Publisher (cont.)

• (Next, DirXML applies the Placement Rule and selects the Destination Container the attempts to create the User)

• [01/07/02 12:20:38.10]: TRACE: Applying placement rule• [01/07/02 12:20:38.10]: TRACE: Trying placement rule 1• [01/07/02 12:20:38.10]: TRACE: Rule selected• [01/07/02 12:20:38.10]: TRACE: Placing object at: novell\Users\James Dean• [01/07/02 12:20:38.10]: TRACE: Pumping XDS to NDS• [01/07/02 12:20:38.10]: TRACE: Performing operation, op: add for: novell\Users\James

Dean• [01/07/02 12:20:38.20]: TRACE: Adding entry: novell\Users\James Dean• [01/07/02 12:20:38.20]: TRACE: Creating RDN: James Dean in context: novell\Users

• (Since the User was created without errors, DirXML Logs a Success message)

• DirXML Log Event -------------------• Driver = \DXML11-TREE\novell\servers\driver-set\NDSToNDS - Flat• Channel = publisher• Object = \NW6-TREE\novell\Users\James Dean (novell\Users\James Dean)• Status = success

Page 50: Www.novell.com Avoiding the Top DirXML ™ Issues Sandy Swanson WSS Engineer Novell, Inc. sswanson@novell.com

Sample Trace Log—Publisher (cont.)

• (In addition to Sending a Success document to the Original Tree, DirXML adds the <add-association> element so that the Original Tree updates it’s Association value)

• [01/07/02 12:20:38.281]: TRACE: Applying output transformations• [01/07/02 12:20:38.281]: TRACE: Fixing up associations references

• (Since the Success document is being transmitted, it must go through the Output Transformation and Mapping rule)

• [01/07/02 12:20:38.281]: TRACE: No mapping rule, skipping• [01/07/02 12:20:38.281]: TRACE: No output stylesheet, skipping• [01/07/02 12:20:38.281]: TRACE: NdsToNds Publisher - NDSToNDS - Flat:

Sending...• [01/07/02 12:20:38.281]: TRACE: NdsToNds Publisher - NDSToNDS - Flat:

XML Document:• <nds dtdversion="1.1" ndsversion="8.5">• <source>

Page 51: Www.novell.com Avoiding the Top DirXML ™ Issues Sandy Swanson WSS Engineer Novell, Inc. sswanson@novell.com

Sample Trace Log—Publisher (cont.)

• <product version="1.1">DirXML</product>• <contact>Novell, Inc.</contact>• </source>• <output>• <status event-id="0" level="success"></status>• <add-association dest-dn="\NW6-TREE\novell\Users\James Dean" dest-entry-

id="33151">• {0090A600-9303-d611-A4CF-00C04F803492}• </add-association>• </output>• </nds>• [01/07/02 12:20:38.321]: TRACE: NdsToNds Publisher - NDSToNDS - Flat: Document

sent.• [01/07/02 12:20:38.321]: TRACE: NdsToNds Publisher - NDSToNDS - Flat: Reusing

connection• [01/07/02 12:20:38.321]: TRACE: NdsToNds Publisher - NDSToNDS - Flat: Waiting for

receive...• (The Add is complete from the Publisher Side)

Page 52: Www.novell.com Avoiding the Top DirXML ™ Issues Sandy Swanson WSS Engineer Novell, Inc. sswanson@novell.com

Sample Trace Log—Subscriber (cont.)

• (Here the Subscriber Channel receives the Success and <add-association> document from the Destination Tree)

• [01/07/02 12:21:36.910]: TRACE: NdsToNds Subscriber - NDSToNDS - Flat: Receiving...

• [01/07/02 12:21:36.910]: TRACE: NdsToNds Subscriber - NDSToNDS - Flat: Received.• [01/07/02 12:21:36.910]: TRACE: NdsToNds Subscriber - NDSToNDS - Flat: XML

Document:• [01/07/02 12:21:36.910]: TRACE: SubscriptionShim.execute() returned:• [01/07/02 12:21:36.910]: TRACE: • <nds dtdversion="1.1" ndsversion="8.5">• <source>• <product version="1.1">DirXML</product>• <contact>Novell, Inc.</contact>• </source>• <output>• <status event-id="0" level="success"/>• <add-association dest-dn="\NW6-TREE\novell\Users\James Dean" dest-entry-

id="33151">• {0090A600-9303-d611-A4CF-00C04F803492}• </add-association>• </output>• </nds>

Page 53: Www.novell.com Avoiding the Top DirXML ™ Issues Sandy Swanson WSS Engineer Novell, Inc. sswanson@novell.com

Sample Trace Log—Subscriber (cont.)

• (Since this is an incoming document it must be processed by the Input Transformation and Schema Mapping rule)

• [01/07/02 12:21:36.910]: TRACE: Applying input transformations• [01/07/02 12:21:36.910]: TRACE: No input stylesheet, skipping• [01/07/02 12:21:36.910]: TRACE: No mapping rule, skipping• [01/07/02 12:21:36.910]: TRACE: Resolving association references

Page 54: Www.novell.com Avoiding the Top DirXML ™ Issues Sandy Swanson WSS Engineer Novell, Inc. sswanson@novell.com

Sample Trace Log—Subscriber (cont.)

• (DirXML sees the Success document and then processes the <add-association> and updates the association in the Source tree)

• [01/07/02 12:21:36.910]: TRACE: Handling returned document• [01/07/02 12:21:36.910]: TRACE: Handling operation, op: status for: • DirXML Log Event -------------------• Driver = \NW6-TREE\novell\servers\driver-set\NDSToNDS - Flat• Channel = subscriber• Object = \NW6-TREE\novell\Users\James Dean• Status = success• [01/07/02 12:21:36.910]: TRACE: Handling operation, op: add-association for: \NW6-

TREE\novell\Users\James Dean• (From the Subscriber Channel, this event is complete)

Page 55: Www.novell.com Avoiding the Top DirXML ™ Issues Sandy Swanson WSS Engineer Novell, Inc. sswanson@novell.com