Hi Eric,

 

Thanks for the explanation: we are still using ML6, so we will try deleting
and setting up the servers again. And if this is not useable over the long
period I will just rename the extension, although this would mean changes to
the calling system as well.

 

Thanks again,

Arne

 

Von: [email protected]
[mailto:[email protected]] Im Auftrag von Erik Hennum
Gesendet: Montag, 12. Januar 2015 16:16
An: MarkLogic Developer Discussion
Betreff: Re: [MarkLogic Dev General] Trouble using two separate REST
instances on one machine

 

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:  <mailto:[email protected]>
[email protected]
[[email protected]] on behalf of Kampf, Arne
[[email protected]]
Sent: Monday, January 12, 2015 7:02 AM
To:  <mailto:[email protected]>
[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
<http://localhost:%25OS-port%25/v1/config/resources/load?title=LoadOS&method
=put&method=get> &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

 

Attachment: smime.p7s
Description: S/MIME cryptographic signature

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

Reply via email to