Hi, Arne:

What version of MarkLogic are you using?

The initial release of the REST API stored all extensions in the Extensions 
database, but we moved to storing extensions in the modules database for the 
REST server.

If you're running MarkLogic 7 and the two REST servers have different modules 
databases, there shouldn't be any collision.

In recent point releases of MarkLogic 6, we store extensions for new REST 
servers in the modules database for the server but, for backward compatibility, 
continue to store extensions for unmodified REST servers in the Extensions 
database.  That could explain why you and your customer are seeing a different 
behaviour.  If so, the customer should be able to fix the problem by deleting 
the old REST servers and creating new REST servers.

If all else fails and you need an immediate fix, you could always rename one of 
the extensions.  But you shouldn't have to do so.


Hoping that helps,


Erik Hennum

________________________________
From: [email protected] 
[[email protected]] on behalf of Kampf, Arne 
[[email protected]]
Sent: Monday, January 12, 2015 7:02 AM
To: [email protected]
Subject: [MarkLogic Dev General] Trouble using two separate REST instances on 
one machine

Hi all,

I’m currently facing a problem at a customer, and I’m not able to find any clue…

We have two different REST server instances on the same machine, “listening” to 
different ports, pointing to different databases. If we query for the docs 
everything is fine, both servers “see” the docs they are supposed to (in 
“their” database). For both REST servers there are custom extensions, which are 
installed using a curl command like this:
curl --anyauth --user %OS-user%:%OS-pass% -X PUT -H "Content-type: 
application/xquery" -d@%OS-path% 
"http://localhost:%OS-port%/v1/config/resources/load?title=LoadOS&method=put&method=get";

The variables are different for both systems, the sources are different – 
“only” the name of the extension is the same in both cases.  My problem is: on 
the customers machine the second curl command seems to “overwrite” the binding 
of the first one, which means both REST server instances are using the source 
referenced by this second command. So if we want to start the “first” extension 
running on the first REST server instance we are not able to, always the latest 
one is used on both ports. I would assume an error in the variable definition, 
but the same setup, the same curl commands, and the same variables used in 
there are working just fine on my local machine. I get different sources on the 
different REST server instances, just like expected. Some time ago the customer 
was able to get around this problem by re-defining the REST servers, but it is 
re-appearing now and seems to stay.

Is there any rule, any setting that I didn’t take into account? Do the names of 
the extensions have to be different, although they are running on different 
REST server instances (and if this is the case: why does it work on my machine)?


Kind regards,
               Arne Kampf

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

Reply via email to