Raghu,

When you say it works in a single host, but not in a clustered environment, 
let's drill down into what has changed in your scenario.   See if you can find 
the error you are getting when it is not invoking the module.  That might 
provide a clue as to what is not working.  Here is what I would try:

1) Set up a single node cluster and ensure it is working.
2) Add another node to that same cluster and see if it still works against the 
host that it originally worked on.
3) Then try the same test using the other host as the e-node (that is, by 
executing the triggering query against the other node).

That will allow you to debug it.  If your code is in the modules database, then 
it should be accessible from anywhere in the cluster.  If, however, you have 
placed your code under the Modules directory, then you would need to duplicate 
that code in each node in the cluster.

Beyond the code being accessible from each host, I can't think of a particular 
setting that would cause it not to work on one host.  Something perhaps is 
different between your hosts that you have yet to discover.

Once again, if you are using cpf, then there are a few more dubugging 
alternatives.

-Danny
________________________________________
From: [email protected] 
[[email protected]] On Behalf Of Raghu 
[[email protected]]
Sent: Saturday, September 17, 2011 10:41 AM
To: General MarkLogic Developer Discussion
Subject: Re: [MarkLogic Dev General] trigger not getting invoked in a clustered 
environment

HI Danny,

             Thanks. I've ensured that everything is in place. The same trigger 
works fine in a single host but in a clustered environment it   isn't invoking 
the module. Is there any setting which might cause this kind of behavior?

Thanks
Raghu

On Fri, Sep 16, 2011 at 9:48 PM, Danny Sokolsky 
<[email protected]<mailto:[email protected]>> wrote:
Hi Raghu,

Is your trigger module (/userdir/modules/xquery/migrate-helper.xqy based on the 
trigger create code you showed) loaded into the database names "Modules".  To 
check that, run (in cq for example):


fn:doc("/userdir/modules/xquery/migrate-helper.xqy ")


against the Modules database.  It should return the text of the module.


Assuming you are using CPF, in the document that is not being triggered, take a 
look at the properties:


xdmp:document-properties($uri)


where $uri is the URI of the document that did not get updated.

Those are some places to start.

-Danny

From: 
[email protected]<mailto:[email protected]>
 
[mailto:[email protected]<mailto:[email protected]>]
 On Behalf Of Raghu
Sent: Friday, September 16, 2011 5:58 AM
To: General MarkLogic Developer Discussion
Subject: [MarkLogic Dev General] trigger not getting invoked in a clustered 
environment

Hi All,

      I'm having a migrator xquery which I need to invoke when a user does an 
operation and so I've used a trigger on the user's directory with infinity as 
depth. It is working fine in normal environment but it isn't invoking the 
migrator query in a clustered environment. Can somebody help me out?

PFB the trigger

import module namespace trgr="http://marklogic.com/xdmp/triggers";
at "/MarkLogic/triggers.xqy";
trgr:create-trigger("migrate folders", "migrate folders",
trgr:trigger-data-event(
trgr:directory-scope("/userdir/1234/", "infinity"),
trgr:document-content("modify"),
trgr:post-commit()),
trgr:trigger-module(xdmp:database("Modules"), "/userdir/modules/xquery/", 
"migrate-helper.xqy"),
fn:true(), xdmp:default-permissions())



Thanks in advance
Raghu

_______________________________________________
General mailing list
[email protected]<mailto:[email protected]>
http://developer.marklogic.com/mailman/listinfo/general

_______________________________________________
General mailing list
[email protected]
http://developer.marklogic.com/mailman/listinfo/general

Reply via email to