Jump to content

Multiple Plastic SCM Servers on a Linux Machine


Sean

Recommended Posts

Hello Sean,

it's quite similar, you have to configure a different port for the secondary server and if both servers are going to use the same backend (database engine) you will need to include a database suffix

<DbConfig>   ...   <DatabaseSuffix>_s2</DatabaseSuffix>   ...</DbConfig>

And in order to run both servers you will need to include on the Unix bootstrap the Plastic SCM launch.

You can do it by running the following:

./plasticd --console

or

./plasticd --daemon

I do recommend you to do it manually the first time in order to see if everything is fine.

Link to comment
Share on other sites

  • 1 month later...

PlasticSCM-4.1.10.341-linux-x64-installer

CentOS 6.3

PostgreSQL DB

One instance is running OK. I have coppied /opt/plasticscm4 to /opt/plasticscm4_2, modified all files, where I found some path info to _2, added DataBaseSuffix, modified port to 80087 and still cannot run the second instance.

plasticd --console

Configuration file '/opt/plasticscm4/server/remoting.conf' could not be loaded: Argument is out of range.

Parameter name: port

Cannot find any file containing this path. I think it is hardcoded somewhere ... ???

Link to comment
Share on other sites

In these files is modified path (from /opt/plasticscm4 to /opt/plasticscm4_2)

./server

umtoolgui

plasticd

umtool

clconfigureserver

configureserver

./client

binmergetool

plasticupd

clconfigureclient

mergetool

cm

plastic

./config

mono_setup

mono_setup_env

Cannot find any other file with strings like /opt/plasticscm4 or remoting.conf inside.

Link to comment
Share on other sites

Hi,

I have a similar issue. I am trying to run two servers on one machine with Windows. I was following this blog post: http://codicesoftwar...lastic-scm.html, however it is not working in the current version (Plastic 4.1.10.345). Everything looks fine, until I try to run the second service. It just doesn't start. I tried to run it as a console app and it returns this error message:

log4net:ERROR [FileAppender] Unable to acquire lock on file C:\Program Files\PlasticSCM4\server\query.log.txt. The process cannot access the file 'C:\Program Files\PlasticSCM4\server\query.log.txt' because it is being used by another process.
log4net:ERROR [RollingFileAppender] Unable to acquire lock on file C:\Program Files\PlasticSCM4\server\ChannelCall.log.txt. The process cannot access the file 'C:\Program Files\PlasticSCM4\server\ChannelCall.log.txt' because it is being used by another process.
log4net:ERROR [FileAppender] Unable to acquire lock on file C:\Program Files\PlasticSCM4\server\upgrade.log.txt. The process cannot access the file 'C:\Program Files\PlasticSCM4\server\upgrade.log.txt' because it is being used by another process.
log4net:ERROR [RollingFileAppender] Unable to acquire lock on file C:\Program Files\PlasticSCM4\server\plastic.server.log. The process cannot access the file 'C:\Program Files\PlasticSCM4\server\plastic.server.log' because it is being used by another process.
Creating ServerSink
Remoting configuration failed with the exception 'System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.Net.Sockets.SocketException: Only one usage of each socket address (protocol/network address/port) is normally permitted
  at System.Net.Sockets.Socket.DoBind(EndPoint endPointSnapshot, SocketAddress socketAddress)
  at System.Net.Sockets.Socket.Bind(EndPoint localEP)
  at System.Net.Sockets.TcpListener.Start(Int32 backlog)
  at Codice.Channels.PlasticTcpServerChannel.StartListening(Object data)
  at Codice.Channels.PlasticTcpServerChannel..ctor(IDictionary properties, IServerChannelSinkProvider serverSinkProvider, Boolean bUseSSL)
  at Codice.Channels.PlasticTcpChannel.CreateServerChannel(IDictionary properties, IServerChannelSinkProvider serverSink)
  at Codice.Channels.PlasticTcpChannel.Init(IDictionary properties, IClientChannelSinkProvider clientSink, IServerChannelSinkProvider serverSink)
  --- End of inner exception stack trace ---
  at System.RuntimeMethodHandle._InvokeConstructor(Object[] args, SignatureStruct& signature, IntPtr declaringType)
  at System.Reflection.RuntimeConstructorInfo.Invoke(BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
  at System.RuntimeType.CreateInstanceImpl(BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes)
  at System.Runtime.Remoting.RemotingConfigHandler.CreateChannelFromConfigEntry(ChannelEntry entry)
  at System.Runtime.Remoting.RemotingConfigHandler.ConfigureChannels(RemotingXmlConfigFileData configData, Boolean ensureSecurity)
  at System.Runtime.Remoting.RemotingConfigHandler.ConfigureRemoting(RemotingXmlConfigFileData configData, Boolean ensureSecurity)'.

It is quite clear what happens: it tries to use files from the first server directory, while it should use my second serverDOC directory. How can I solve that? Is the path hardcored somewhere?

Link to comment
Share on other sites

JakubH, in your case you are trying to use the same port for both servers. Check the remoting.conf file and choose a different one for the SSL and the regular channel.

That's why the framework is complaining with this error:

SocketException: Only one usage of each socket address (protocol/network address/port) is normally permitted
Link to comment
Share on other sites

I am afraid I don't understand to your latest post, maybe it is intended for the Linux case.

However I finally manage to get it up and running: the second service was installed wrong – with incorrect path. I delete it and create it again manually (using sc create PlasticServerDOC binPath= "C:\Program Files\PlasticSCM4\serverDOC\plasticd.exe" DisplayName= "Plastic Server 4 DOC" start= auto). It is working now.

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...