Creating a 1s 8.3 cluster

Creating a 1s 8.3 cluster

Terms, concepts

Why do you need a 1C server?

The term “server cluster” refers to several computers (servers) performing a common task.

The tasks solved by the 1C:Enterprise 8 server cluster are shown in the figure below.

Difference between 8.1 and 8.2

Cluster 1C 8.1

The 1C:Enterprise 8.1 server cluster is an implementation of the ideas of load distribution on servers serving client requests. This mechanism distributes the load on computing resources within one server or several servers (“Working Servers”), thus ensuring application scaling. The server cluster duplicates the code that serves client connections. The cluster's duplicate executable code is named "Worker Process" (rphost). When installing a cluster, only one worker process is created.
Several worker processes on one server make it possible to effectively use the amount of RAM and processor resources to execute requests, as well as connect a client session to another worker process if the current one “crash”.
The Server Agent (ragent) program is responsible for understanding what is running on a specific server. Stopping the server agent will make the server unavailable for use by the cluster. The agent stores its information in the file srvribrg.lst.
Information about work databases and involved work processes is owned by the “Server Manager” (rmngr). It stores this information in the file 1CV8Reg.lst. Stopping the server manager can lead to a restart of client applications if the manager restarts successfully or to a complete stop of the working servers of the entire cluster.
1C:Enterprise 8.1 allows the possibility of creating several independent clusters on one server. Each of them is identified on the network by a unique “IP port” and a unique number in service files. The first cluster receives port 1541 by default.
The Enterprise Servers snap-in is designed to manage the cluster.
You can connect to servers by server name or IP address.

Server agent

The server agent “knows” about all the clusters that are running on the server. This information is stored in the file srvribrg.lst with a list of clusters and list administrators. The main port of the agent is 1540. On each Working server, only one agent can be launched, servicing all possible clusters on this server.
To get more detailed information visually, use the Process Explorer utility (developed by Sysinternals). The program allows you to take a deeper look inside any running processes, including a 1C:Enterprise 8.1 server cluster.

Cluster Manager

The cluster manager is responsible for the operation of the cluster. Each cluster has its own Manager. The manager stores information about the cluster in the file 1CV8Reg.lst (cluster registry). Each Cluster Manager also has its own port on the Work Server. For the first cluster, the default Manager port is 1541. It is this port that is displayed in the 1C:Enterprise Servers snap-in in the Clusters branch, identifying the cluster.
The manager receives requests from the client part of 1C:Enterprise 8.1 and makes a decision to which Workflow to give this service request.

The Manager uses the service port to interact with worker processes.

The working process

The Work Process is responsible for “working with clients.” We can say that in the previous version of 1C:Enterprise 8.0 there was only one “Workflow”.
There can be several worker processes in a 1C:Enterprise 8.1 cluster. The server manager decides which worker process will serve the client connection. For client connections, Worker Processes are by default allocated a range of IP ports 1560 – 1591. In addition, each Worker Process is assigned a Service port for communication with the cluster manager. Each worker process uses up to 2 Gb of RAM in a 32-bit operating system. In a 64-bit operating system, the limitation is imposed by the physical amount of RAM

Cluster 1C 8.2

Server cluster 1C:Enterprise 8.2 – further development of server 8.2 technologies.

The server can work “like 8.1”, i.e. it remains compatible with previous technologies.

And plus a new approach to server operation has been implemented. Now, instead of processes, sessions play an important role.

Sessions enable load balancing and fault tolerance within a managed application.

Cluster Manager

The cluster manager has now become more complex. Some functions can now be separated into a separate process and even placed on another working server in the cluster. This allows you to balance the server load.

Server 8.2 fault tolerance is achieved through:

  • Storing information about the user's session.
    • The user is no longer tied to the workflow.
  • Reservation of work processes in a cluster.
    • There should be several worker processes, including redundant ones
  • Cluster reservation.
    • A spare cluster is indicated; when connected, they are listed in the connection line

This allows for continuity of operation:

If the client’s physical connection to the cluster is broken (the cleaning lady pulled out the cable, the power to the network equipment was turned off, there was a problem with the provider), there is no need to reconnect to the infobase and start all the work all over again. After the physical connection is restored, the user can continue working from the point where it was interrupted.

If maintenance of cluster computers is required, they can be turned off during operation without stopping users from working with the information base.

If any server in the cluster fails, user work will not stop; it will be automatically transferred to the backup cluster and/or backup work processes. For users, such a transition will be invisible.

If one of the cluster's worker processes fails, users connected to it will be automatically transferred to other or backup worker processes. Such a transition will also be invisible to users.

Cluster 1C 8.3

Server 8.3 is characterized by a newly redesigned internal code, although “from the outside” it may seem that it is a slightly modified 8.2.

The server has become more “auto-configurable”; some parameters, such as the number of worker processes, are no longer created manually, but are calculated based on the descriptions of the requirements of fault tolerance and reliability tasks.

A load balancing mechanism has been developed, which can be used either to increase the performance of the system as a whole, or to use a new “memory saving” mode, which allows you to work “with limited memory” in cases where the configuration used “likes to eat up memory.”

Stability of operation when using large amounts of memory will be determined by the new parameters of the production server.

The “safe memory consumption per call” parameter is especially interesting. For those who have little idea what it is, it’s better not to train on a “productive” basis. The “Maximum memory size of working processes” parameter allows, in case of “overflow”, not to crash the entire working process, but only one session “with the loser”. “The amount of working process memory up to which the server is considered productive” allows you to block new connections as soon as this memory threshold is exceeded.

I recommend isolating work processes by information base, for example, specifying the parameter “Number of information security per process = 1”. With several highly loaded databases, this will reduce mutual influence both in terms of reliability and performance.

A separate contribution to the stability of the system is made by the “expenditure” of licenses/keys. In 8.3, it became possible to use a “software license manager”, reminiscent of the “aladin” manager. The goal is to be able to place the key on a separate machine.

It is implemented as another “service” in the cluster manager. You can use, for example, a “free” laptop. Add it to the 1C 8.3 cluster, create a separate manager on it with the “licensing service” service. You can insert a hardware hasp key into your laptop, or activate software licenses.

Of greatest interest to programmers should be the “Functionality Assignment Requirements”.

So on a laptop with a security key, in order not to launch users on the cluster server, you need to add “requirements” for the requirement object “Client connection to information security” - “Do not assign”, i.e. prevent worker processes on this server from processing client connections.

Even more interesting is the ability to run “background jobs only” on the cluster’s production server without user sessions. This way you can move highly loaded tasks (code) to a separate machine. Moreover, you can run one background task of “closing the month” using the “Value of an additional parameter” on one computer, and the background task “Updating the full-text index” on another. Clarification occurs through the indication “Value of an additional parameter”. For example, if you specify BackgroundJob.CommonModule as a value, you can limit the work of the worker server in the cluster to only background jobs with any content. BackgroundJob.CommonModule value.<Имя модуля>.<Имя метода>- will indicate a specific code.

Solving possible installation problems

When installing the 1C:Enterprise 8.1 server part, you can create a new user or select an existing account.

In case of selecting an existing account, you must provide the correct password and confirmation, otherwise starting the server side further will result in an error.
When you run the Cluster Agent for the first time, a default cluster is created.
The default cluster has the following characteristics:
· port number – 1541;
· IP port range – 1560:1591;
· support for many workflows – disabled;
· one worker process, the port number is set from the specified range.
If there are any problems when you first start the Cluster Agent, the default cluster may not be created. This manifests itself in the fact that when the server agent (ragent) starts, it starts, but does not start other cluster processes (rmngr, rphost). The list of clusters srvribrg.lst looks like this:
{
{0},
In this case, you can stop the ragent process, delete the list of clusters (srvribrg.lst) and start ragent again.

Check that the ports specified in the port command line parameter for starting the server agent service match and those specified in the central server parameters dialog of the cluster console:

— Stop the 1C:Enterprise 8.1 Server Agent service.

If the Server Agent is running as an application, it can be stopped by pressing the Ctrl+C key combination.
- Make sure in the Task Manager that all processes ragent, rmngr, rphost have ended. If necessary, complete them using Task Manager.

— Open the properties of the 1C:Enterprise 8.1 Server Agent service.

- Pay attention to the line “Executable file” (Path to executable). It has the -d parameter followed by the cluster data directory. All files related to the cluster are located in this directory.
- Delete all contents of this directory.
— Start the 1C:Enterprise 8.1 Server Agent service.
- Make sure in the Task Manager that all processes ragent, rmngr, rphost have started.
— Launch the cluster console and register the central server in it. The console should connect to the central server and show one cluster created by default.
Possible problems with the failure of the Server Cluster include problems with security keys, service account rights, and incorrect startup parameters.

  1. The server protection key is installed LOCALLY on each server in the enterprise
  2. Don't set a service account with a blank password
  3. With multiple clusters, the ports used should not overlap

Please note that during the installation process of the 1C:Enterprise 8.1 platform, error messages may be displayed. The most likely messages are listed below. The reasons that caused the messages and steps to eliminate them are indicated.

Error 1069: The service is not running due to a login error

The problem is related to the account's rights to run as a system service. Open the Local Security Policy utility and add the user (on whose behalf the Cluster Work Servers are launched) to the Logon as service and Logon as batch job policies.
If the data stored in service files is damaged, the start of the Cluster's Production Servers may fail. Make sure that the 1C:Enterprise 8.1 server agent is running (ragent process in Task Manager).
Don't forget that Windows Event Auditing is also an analysis tool. To do this, look to see if any “suspicious” messages appear in the Windows event log.

Error 8007056B / 800708C5

The new password does not meet the password policies. The password may be too short or you have already used this password recently.
Reason: the specified password for the account in the “Install 1C:Enterprise server” dialog box does not meet the requirements of the security policy.
Solution: Set a new password for the selected account that meets the requirements of the security policy or weaken the requirements of the applied security policy, i.e. do not require a “complex” password, do not limit the number of characters in the password, do not check repetition attempts, etc.

Error 1923: No privileges to install by service

Cause: The error is related to the account's installation rights as applications. This error is typical for attempts to install a server on a domain controller where increased security measures are required.
Solution: Do not use a domain controller to host the enterprise server or relax the security requirements and specify the “Run as a service” or “Run as a batch job” rights for the selected account.

Error 80070056

Your password could not be changed. Each password must be used for at least x days.
Cause and Solution: Another error that occurs when the security policy requirements for the passwords used are violated. The solution is similar to error 800708C5.

Windows Sockets - 11004(0x00002AFC)

1) Make sure that on the Working server of the cluster in the Task Manager the following are running:
Server agent (ragent.exe),
Cluster Manager (rmngr.exe),
Cluster worker process (rphost.exe).
2) To check IP address name resolution, run on the command line:
ping machinename
In the system's response to the command, we are interested in determining whether the IP address is determined.
3) If the name is determined, but the Worker Process is still not found, then make sure that the IP address of the name is determined<имя машины>And<имя машины>.<имя домена>are not defined differently.

(Windows Sockets - 10054(0x00002746).

The remote host forcibly closed the connection.
This message may be received if the server is rebooted or the Worker Process is forcibly deleted.
This error usually does not appear when reconnecting. If the error persists, it is necessary to investigate the reasons for the failure of the cluster's production servers.
This error can occur when a worker process reaches the maximum memory capacity on 32-bit systems.
Another case is a connection attempt from a client with an error message:

(Windows Sockets - 10060(0x0000274C)

An attempt to establish a connection was unsuccessful because... the required response was not received from another computer within the required time, or an already established connection was terminated due to an incorrect response from the already connected computer.
The essence of this error is the lack of response within a certain time (timeout).
1) Make sure your firewall is not blocking application traffic. Turn off your firewall.
To do this, run the command in the command line (the command is available starting from Windows XP and Windows Server 2003; earlier versions do not have a built-in firewall, but third-party software can be installed):
netshfirewallsetopmodedisable
If the command is successful, you will receive a message:
OK.
In addition to a firewall, network filters can block traffic. They are disabled by default. However, make sure it is like this:

  1. Open the Network Connections folder.
  2. Right-click the network connection you want to configure and select Properties.
  3. On the tab Are common(for local network connection) or on the tab Net(for all other connections) select Internet Protocol (TCP/IP) and press the button Properties.
  4. Click the button Additionally.
  5. Open the tab Options, select an option TCP/IP Filtering and press the button Properties.
  6. Make sure the checkbox Enable TCP/IP filtering (all adapters) removed.

2) Make sure that the processor resources are not 100% loaded (CPU%).
3) Measure the network activity of the client and server interfaces. The load on the network adapter should not exceed 60%.

(Windows Sockets - 10061(0x0000274D)

The connection has not been established because The destination computer rejected the connection request.
A typical reason for this error is the absence of a running Server Agent. Start the server manually or reboot the server to start automatically.

Answers on questions

Multiplatform 1C

Server installation

Q: Error installing 1c server on MS Server 2008 R2 x64 When installing 1c server via the command line, for example, ragent.exe -instsrvc -port 2040 -regport 2041 -range 2060:2091 -d “C:\Program Files\1cv82\ (taken from the ITS disk), the command line writes the message: “Error! OpenSCManager error!” The service is not created in this case. Tested on 8.1.15.14 and 8.2.10.77

A: To install from the command line on an OS where UAC is present, you need to use the RunAs service, because Even if the user is a member of the Administrators group, UAC blocks actions that change the system state.

Protection keys

Q: Does the protection key for Server 8.2 allow me to run Server 8.1?
A: Yes, it does

Q: To start a 1C server, do I need some kind of server hasp keys? Local, or will it not work for 5 users?

A: yes, the server needs its own key, local user and network keys will not work. More details in « « , slide number 30.

Q: Let’s say a 1C server cluster consists of 3 physical servers. how many security keys are needed?

Q: There is a terminal server and a key for 5 licenses, a 6th additional license must be purchased. license. Is it possible to install it on the server next to the key at 5? And will all 6 users work in terminal sessions or 5 - under the terminal, and 1 in the file version?
A: No, they won't. The 6th license in the form of a local key must be plugged into the user’s computer, but not into the terminal.

1C server updates

Q: When a new version 8.2.xxx of the platform is released, what is the procedure for updating servers and clients?
A: 8.2 distributions install their files in different folders (each version has its own folder), i.e. theoretically, it remains possible to call several versions of the server in parallel.

I didn't have any problems. However, you need to carefully monitor the ports occupied by the 1C server instance. There should be no intersections.

Setting up 1C server

Q: In 1C 8.1, what is the best way to place infobases, if there are several of them, in one cluster or create a separate cluster for each database? A: With a large volume or load, test databases must be placed in separate clusters!

Q: QUESTION: Is the 1C:Enterprise 8.1 workflow a single-threaded application or a multi-threaded one? Those. can many cores be loaded with one connected user? With several? What about the 1C:Enterprise 8.2 workflow? Thank you.
A: 1Сv8.exe and rphost.exe in version 8.1 consumed 1 core. Since in 8.1 the client connection is strictly tied to the worker process, we can conditionally assume that 1C client processing is performed within a single core. The exception is the DBMS, which uses kernels regardless of how the 1C server works.

In version 8.2, connections are replaced by sessions. Sessions may already be running in different worker processes. Therefore, calling 8.2 single-threaded is probably not correct. Client 8.2 also visually loads several cores, so this:

Platform 8.2 does not implement all the capabilities of a multi-threaded system, but it makes much better use of hardware capabilities compared to 8.1, including in terms of parallelism.

Q: Is it necessary to have multiple 1C:Enterprise 8.1 work processes for the database server (MS SQL) to load multiple cores? (It is noted that MS SQL usually “loads” only one core, i.e., “parallelizing” the processing of one request across several cores, as a rule, does not occur.) Thank you.
A: There is no need to specifically manage MS SQL; it is a fairly self-tuning system that uses resources as needed. You can control execution parallelism:

EXEC sys.sp_configure N’max degree of parallelism’, N’5′
GO
RECONFIGURE WITH OVERRIDE
GO

You can create several work processes on the 1C server based on the fact that one work process does not provide the ability for users to reconnect in case the work process crashes. Process 2 (on 8.2 it is better to make it “backup”) solves this problem. But it makes sense to add a third or more work processes only if the first two work processes are heavily loaded (more than 90%). There is no point in multiplying work processes unnecessarily; this can worsen productivity.

A: There must be at least 1 backup worker process in 8.2.

Failover Cluster

Q: Question about enabling redundancy for 1s 8.2 clusters. If our server crashed (the cleaning lady pulled out the wire), then the network name, for example “server:2540” will be unavailable. How does a client whose connection string says “server:2540” know that it needs to connect to the backup cluster? where will he get the name of the other server? What if you write clusters separated by commas in the database connection string?
A: Several clusters are combined into a “redundancy group”. For this purpose, there is a “reservation list” in the cluster snap-in.

When a client first accesses a cluster, it is given a list of clusters included in the redundancy group.

If the client has never contacted you, then in this case you need to manually specify the addresses of all clusters, for example storm:2541,monster:2541.

Synchronized data is exchanged between redundancy clusters.

Q: What happens after the main cluster is restored? when users switched to backup.

A: They are going back. There may be pauses when switching while synchronizing these clusters.

Background jobs

Q: How to delete a background job running on servers 1C:8.1 and 1C:8.2?

A: The ability to cancel a routine task only works if the code is executed within the built-in 1C:Enterprise language. If the code is executed in external libraries, then such a task cannot be canceled except by forcefully terminating the workflow. If in the process there is a block StartTransaction() - CommitTransaction(), then it’s unlikely. Other background jobs can be deleted via the job console.

Regulatory procedures

Q: Is it possible to destroy the base during T&I?

A: I am not aware of such cases, but IMHO anything is possible. Therefore, it would be a good idea to make a backup before T&I.

Q: Vyacheslav, for what reasons do you not perform reindexing using 1C Testing and Correction?
A: DBMS capabilities are better suited for these purposes, since they essentially also rebuild indexes, but do not require exclusive seizure of the database.

Technology magazine

Q: Good afternoon. Question from a technology magazine: I need to receive copies of workstation screens in case of 1C errors. Do I need to set up a technological log on workstations for this, or is it only for the server?
A: You can only configure receiving a screenshot when the platform falls, and not when there is any error. However, there is not much usefulness in such an operation; it is quite enough to collect exception situations using a technological log. At the same time, most of the errors can be seen using TZ on the 1C server side. The exception may be events such as a "format stream error" associated with an outdated metadata cache.

Problems and errors

Q: Have you encountered a problem - the disappearance of report settings for users when dynamically updating configurations on the 8.2 platform. Any recommendations on how to deal with this?
A: Problems related to dynamic updating are reflected in “1C Servers: Enterprise 8.1 and 8.2 - what to eat with “), slide number 60. Clear cache. Perhaps in some cases it is necessary to understand where exactly user settings are stored. If necessary, store as binary data in the information register.

Q: A related question, because... this is relevant for file mode: what errors does chdbfl.exe correct?
A: This is a data storage structure error correction tool. This could be a situation where, for example, “The database file is damaged.../1Cv8.1CD” appears. Those. fixes database file corruption. However, it does not perform T&I functions. I run chdbfl.exe if the T&I does not run successfully.

Q: Please tell me if you have encountered such a problem. when there are a large number of users in the database (about 40) when processing large documents, for example, reflecting the PO in the reg. Accounting for about 8000 lines. an error message is given: there is not enough memory on the enterprise 1C server and the user who initiated this document falls off. The document can then be processed only after restarting the 1C server agent.
A: Looks like memory leaks:

1. Restart the 1C server, increase the number of worker processes, and keep only this one database in the cluster.

2. Beat the holding in portions, say 1000 lines at a time. Using TZ, track objects that occupy memory at the beginning of an operation, but do not release memory upon completion.

3. Install the x64 version, increase the amount of RAM, switch to 8.2.

Q: Question about testing and management. Is it possible to run a “Referential Integrity Check” based on the URDB with selection based on the transmitted data? (i.e., in some nodes there are physically no objects, but there are links to them). Thank you!
A: Unfortunately, this is not possible yet.

Q: Why doesn’t testing and fixing solve all the issues at once, do you have to run it several times?

A: Only developers can answer accurately. I run T&I according to regulations (cyclically), so this issue is not very relevant for me. T&I must be done not just once, but constantly, like “MOT for a car.”

Q: Is there a difference between T&I 8.1 and 8.2?

A: At the moment of writing the answer and release 8.2.10, I do not know the difference.

Q: Is it necessary to reindex during restructuring?
A: No need.

Other

Q: Dear Sirs, has anyone tried to mirror databases using MSSql 2008? Is this even possible?

Q: Question about forcing shared memory on server 1s 8.2

A: There is no need to force anything, the server will understand.

Q: For 1C:Enterprise 8.1, situations have been noticed when, on the same hardware, the file-server version with “heavy” operations and a single user works much faster than the client-server version, when all “links” (database server, 1C server :Enterprise and client) are installed on the same server. Moreover, when performing this “heavy” operation, there are no obvious hardware overloads (the load on the processor, memory, and hard drives is minimal). That is, there are a lot of hardware resources, but it works slowly. What can we “rest against”? Thank you.
A: The advantage of the client-server architecture from a performance point of view is the ability to process client requests for data in PARALLEL. Those. Flow speed is not an indicator on which to draw general conclusions. Mechanisms that improve concurrency may still slightly reduce performance within a single thread.

In order to unambiguously find the bottleneck in your case, you need to obtain the workload of the server equipment and compare it in time with the longest operations in client-server mode. Often this is an excessive movement of data to the client side. Those. Instead of performing operations on the 1C server, data from the database is transferred through the server to the client.

The speed in one thread of the client-server version will only catch up with the performance of the file version. It is worth tackling this problem if the operation time in absolute numbers is measured in no less than minutes. Optimizing within 1-3 second queries is doubtful.

Q: About the difference between the Windows terminal and the 1C thin client.
A: Until most solutions are COMPLETELY translated to 8.2, it is definitely difficult to talk about a practical comparison of these technologies.

It is clear that the 1C thin client should consume less traffic and provide the ability to work via the web. But this is something that has yet to be implemented, and terminal solutions are being used very widely now.

For conservative, pragmatic project managers converting 8.1 to 8.2 - a terminal solution. For small projects with a low cost of errors and a configuration immediately implemented with managed forms and access control systems, a thin client is preferable IMHO.

Q: How to conduct load testing close to real conditions? After all, you can’t force users to “click something.”

A: 1C: Test center with a selection of the most difficult operations, 100% reproduction is not necessary, the clicks themselves are not difficult, mainly conducting and requesting reports. There will be a separate webinar on testing. I’ll also tell you in more detail.

In addition to the file version, the 1C:Enterprise system can work with information bases in a client-server version. In the latter case, an architecture is understood that consists of several software layers, schematically depicted in the figure below.

  • Client applications, thin clients and web clients- this is “1C:Enterprise” in various launch modes with which the end user works. For client applications and thin clients, a web browser is sufficient on users' computers (or on), for a web client.
  • Server cluster "1C:Enterprise" is a collection of work processes running on one or more computers and a list of information bases that are located in this cluster. In the server cluster, all the work of application objects is performed, preparations are made for displaying forms (reading infobase objects, filling out form data, arranging elements, etc.) and the command interface, generating reports, and running background jobs. Clients only display information prepared in the server cluster. In addition, service files are stored on the 1C:Enterprise cluster server, as well as an infobase registration log.
  • Database server— on the database server, direct storage and work with data takes place, provided by one of the following database management systems (DBMS) supported by the 1C:Enterprise system:
    • Microsoft SQL Server from Microsoft SQL Server 2000 and higher;
    • PostgrageSQL since version 8.1;
    • IBM DB2 since version 9.1;
    • Oracle Database since version 10g Release 2.
  • Web server required only for web clients and one of the thin client options. Provides interaction of these types of connections with a cluster of 1C:Enterprise servers.

It is also worth noting that each software layer does not necessarily have to be located on a separate physical computer. A server cluster can be located on the same computer with a database server, web server, etc. For example, the following work structure is often found in small organizations:

In this article I will describe the installation of the 1C:Enterprise server version 8.3.4.389 (for other versions of the 1C:Enterprise platform 8.1, 8.2 and 8.3 the steps are similar) on one computer running Windows Server 2008 (R2) or Windows Server 2012 (R2). Microsoft SQL Server 2008 (R2) or Microsoft SQL Server 2012 will be considered as a DBMS. For this we will need:

  1. A computer that meets the system requirements for installing the 1C:Enterprise server and with the OS installed on this computer or .
  2. A computer for a database server, also running an OS or (can be the computer from step 1).
  3. Local administrator rights on both computers.
  4. Distribution kit for installing the 1C:Enterprise server 8.
  5. Software license or HASP4 Net protection key for the 1C:Enterprise server.
  6. Distribution kit for installing Microsoft SQL Server 2008 (R2) or Microsoft SQL Server 2012.

2. Installation of MS SQL Server DBMS

We install the MS SQL Server DBMS on the computer that serves as the database server. To operate the 1C:Enterprise system, it is enough to install the following components:

  • Database Engine Services
  • Management Tools - Basic
    • Management Tools - Complete.

Select sorting options " Cyrillic_General_CI_AS" Details about installing systems

3. Configuring Windows Firewall for DBMS operation

If the database server and the 1C:Enterprise cluster server are located on different physical computers, you need to configure the Windows Firewall on the database server so that the 1C:Enterprise server can work with the DBMS, namely, open incoming connections on the port 1433 (for default SQL Server instance).

  • I wrote in detail about setting up Windows Firewall for Microsoft SQL Server 2008 (R2) / 2012.

4. Adding a user to MS SQL Server

Next, we will add a separate user to MS SQL Server, under which the 1C:Enterprise server databases will be connected. This user will also be the owner of these databases. The added user must be authorized on the server using a password and have the following set of roles: dbcreator, processadmin, public. Details about adding a user to

  • Microsoft SQL Server 2008 (R2) I wrote.
  • I wrote Microsoft SQL Server 2012.

5. Installation of the 1C:Enterprise server

Now let's move on to installing the 1C:Enterprise server files and starting the corresponding service. Installation requires a distribution kit of the 1C:Enterprise technology platform. From the list of supplied distributions, the following are suitable:

  • 1C:Enterprise technology platform for Windows - allows installation of a 32-bit 1C:Enterprise server
  • 1C:Enterprise server (64-bit) for Windows - allows installation of both 32-bit and 64-bit 1C:Enterprise servers

(There is also an extended version of KORP server 1C:Enterprise 8.3, details can be found on the 1C website)

Open the directory with the 1C:Enterprise server installation files and run the file setup.exe.

The 1C:Enterprise system installation assistant will start. On the first page click " Further».

On the next page you need to select the components that will be installed; we require the following components:

  • Server 1C:Enterprise— 1C:Enterprise server components
  • Server administration 1C:Enterprise 8— additional components for administering a cluster of 1C:Enterprise servers

The remaining components (the list of components may depend on the specific distribution), depending on the need, can also be installed on this computer. Having made your choice, click “ Further».

Select the interface language that will be used by default and click “ Further».

If the 1C:Enterprise server is installed as a Windows service (and in most cases it should be installed that way), I recommend immediately creating a separate user from which the service being created will be launched. For this

  • Leave the flag "on" Install 1C:Enterprise server as a Windows service (recommended)»;
  • We move the corresponding switch to “ Create user USR1CV8».
  • Enter the password for the user being created twice. By default, the password must comply with the Windows password policy. You can read more about this:
    • For Microsoft Windows Server 2008 (R2) - ;
    • For Microsoft Windows Server 2012 - .

You can also select an existing user to run the 1C:Enterprise server. In this case, the selected user must have the following rights:

  • Log on as a service
  • Log on as a batch job
  • Performance Log Users.

Also, the user must be given the necessary rights to the directory of server service files (by default C:\Program Files\1cv8\srvinfo for 64-bit and C:\Program Files (x86)\1cv8\srvinfo for a 32-bit server).

Automatically created user USR1CV8 will have all of the above rights.

After filling in the appropriate parameters, click " Further».

And finally, click “ Install» to start the installation. This will copy the files of the selected components, create configuration files, register program components, create shortcuts, and also start the 1C:Enterprise server service.

Once the installation is complete, the assistant will prompt you to install the protection driver - HASP Device Driver. If you are using a software license for the 1C:Enterprise server, there is no need to install the driver. Leave or remove the flag " Install protection driver" and click " Further».

Server 8.3 is characterized by a newly redesigned internal code, although “from the outside” it may seem that it is a slightly modified 8.2.

The server has become more “auto-configurable”; some parameters, such as the number of worker processes, are no longer created manually, but are calculated based on the descriptions of the requirements of fault tolerance and reliability tasks.

A load balancing mechanism has been developed, which can be used either to increase the performance of the system as a whole, or to use a new “memory saving” mode, which allows you to work “with limited memory” in cases where the configuration used “likes to eat up memory.”

Stability of operation when using large amounts of memory will be determined by the new parameters of the production server.


The “safe memory consumption per call” parameter is especially interesting. For those who have little idea what it is, it’s better not to train on a “productive” basis. The "Maximum memory size of working processes" parameter allows, in case of "overflow", not to crash the entire working process, but only one session "with the loser". “The amount of memory for work processes up to which the server is considered productive” allows you to block new connections as soon as this memory threshold is exceeded.

I recommend isolating work processes by information base, for example, specifying the parameter “Number of information security per process = 1”. With several highly loaded databases, this will reduce mutual influence both in terms of reliability and performance.

A separate contribution to the stability of the system is made by the “expenditure” of licenses/keys. In 8.3, it became possible to use a “software license manager”, reminiscent of the “aladin” manager. The goal is to be able to place the key on a separate machine.

It is implemented as another “service” in the cluster manager. You can use, for example, a “free” laptop. Add it to the 1C 8.3 cluster, create a separate manager on it with the “licensing service” service. You can insert a hardware hasp key into your laptop, or activate software licenses.

Of greatest interest to programmers should be the “Functionality Assignment Requirements”.

So on a laptop with a security key, in order not to launch users on the cluster server, you need to add “requirements” for the requirement object “Client connection to information security” - “Do not assign”, i.e. prevent worker processes on this server from processing client connections.

Even more interesting is the ability to run “background jobs only” on the cluster’s production server without user sessions. This way you can move highly loaded tasks (code) to a separate machine. Moreover, you can run one background task of “closing the month” using the “Value of an additional parameter” on one computer, and the background task “Updating the full-text index” on another. Clarification occurs through the indication “Value of an additional parameter”. For example, if you specify BackgroundJob.CommonModule as a value, you can limit the work of the worker server in the cluster to only background jobs with any content. The BackgroundJob.CommonModule..- value will indicate the specific code.

It is clear that there is no point in retelling the documentation. But if someone gives some useful advice, I’ll expand the article.

First of all, after installing the 1C cluster, it was necessary to create workflows. As it turned out, cluster processes began to be created automatically depending on the load of the database.

A test run of background jobs of the main database caused the 1C cluster to endlessly overload rphost.exe and the additional rphost.exe did not want to be created. After digging through the settings, everything became clear.

Maximum Workflow Memory is the amount of memory that worker processes can use together. You need to be very careful when setting the parameter, measured in bytes. If you set the wrong value (insufficient for normal user operation), users will receive the error “Not enough free memory on the 1C server.” You can also get this error when the memory quota on the 1C server has run out.

Safe memory consumption per call– allows you to control memory consumption during a server call, measured in bytes. If a call uses more memory than expected, this call will be completed within the 1C cluster without restarting the worker process (rphost.exe). Accordingly, the “loser” who made the server call will lose his session with the 1C database without affecting the work of other users.

in one GB – 1073741824 Bytes, therefore in 2 GB – 2147483648 Bytes

The amount of memory for work processes up to which the server is considered productive - if this parameter is exceeded, the server in the 1C cluster will stop accepting new connections.

Number of information security per process– allows you to isolate information bases for work processes. By default, the current 1C cluster was set to “ 8 “, but over the course of several hours of operation, the server behaved very unstable, user sessions froze. After isolating each infobase (value – “1”) the problems disappeared.

Number of connections per process– default value “ 128 “. Since the current database has a very large load of background tasks (logistics calculations, price list analysis, competitor analysis, etc.), it was decided to reduce the number to “25”.

The settings of the 1C cluster itself have changed slightly:

Fault tolerance level– this is the number of working servers that can simultaneously fail, and this will not lead to abnormal termination of users. Backup services are launched automatically in the amount necessary to ensure the specified fault tolerance. In real time, the active service is replicated to the backup ones.

Load sharing mode– there are two options for the parameter: “Priority by performance” – more server memory is spent and performance is higher, “Priority by memory” – the 1C cluster saves server memory.

Server 8.3 is characterized by a newly redesigned internal code, although “from the outside” it may seem that it is a slightly modified 8.2.

The server has become more “auto-configurable”; some parameters, such as the number of worker processes, are no longer created manually, but are calculated based on the descriptions of the requirements of fault tolerance and reliability tasks.

This reduces the likelihood of server misconfiguration and lowers the qualification requirements for administrators.

A load balancing mechanism has been developed, which can be used either to increase the performance of the system as a whole, or to use a new “memory saving” mode, which allows you to work “with limited memory” in cases where the configuration used “likes to eat up memory.”

Stability of operation when using large amounts of memory will be determined by the new parameters of the production server.

The “safe memory consumption per call” parameter is especially interesting. For those who have little idea what it is, it’s better not to train on a “productive” basis. The “Maximum memory size of working processes” parameter allows, in case of “overflow”, not to crash the entire working process, but only one session “with the loser”. “The amount of working process memory up to which the server is considered productive” allows you to block new connections as soon as this memory threshold is exceeded.

I recommend isolating work processes by information base, for example, specifying the parameter “Number of information security per process = 1”. With several highly loaded databases, this will reduce mutual influence both in terms of reliability and performance.

A separate contribution to the stability of the system is made by the “expenditure” of licenses/keys. In 8.3, it became possible to use a “software license manager”, reminiscent of the “aladin” manager. The goal is to be able to place the key on a separate machine.

It is implemented as another “service” in the cluster manager. You can use, for example, a “free” laptop. Add it to the 1C 8.3 cluster, create a separate manager on it with the “licensing service” service. You can insert a hardware hasp key into your laptop, or activate software licenses.

Of greatest interest to programmers should be the “Functionality Assignment Requirements”.

Requirements for the assigned functionality of 1c

So, on a laptop with a security key, in order not to launch users on the cluster server, you need to add “requirements” for the requirement object “Client connection to information security” – “Do not assign”, i.e. prevent worker processes on this server from processing client connections.

Even more interesting is the ability to run “background jobs only” on the cluster’s production server without user sessions. This way you can move highly loaded tasks (code) to a separate machine. Moreover, you can run one background task of “closing the month” using the “Value of an additional parameter” on one computer, and the background task “Updating the full-text index” on another. Clarification occurs through the indication “Value of an additional parameter”. For example, if you specify BackgroundJob.CommonModule as a value, you can limit the work of the worker server in the cluster to only background jobs with any content. BackgroundJob.CommonModule value.<Имя модуля>.<Имя метода>– will indicate a specific code.

SO WHAT HAS CHANGED IN CLUSTER 1C 8.3:

First of all, after installing the 1C cluster, it was necessary to create workflows. As it turned out,cluster processesstarted to be created automatically depending on the load of the database.

A test run of background jobs of the main database caused the 1C cluster to endlessly overload rphost.exe and the additional rphost.exe did not want to be created. After digging through the settings, everything became clear.

Maximum Workflow Memory is the amount of memory that worker processes can use together. You need to be very careful when setting the parameter, measured in bytes. If you set the wrong value (insufficient for normal user operation) users an error will be thrown "There is not enough free memory on the 1C server". You can also get this error when the memory quota on the 1C server has run out.

Safe memory consumption per call- allows you to control memory consumption during a server call, measured in bytes. If a call uses more memory than expected, this call will be completed within the 1C cluster without restarting the worker process (rphost.exe). Accordingly, the “loser” who made the server call will lose his session with the 1C database without affecting the work of other users.

The amount of work process memory up to which the server is considered productive- at If this parameter is exceeded, the server in the 1C cluster will stop accepting new connections.

Number of information security per process- allows you to isolate information bases for work processes. By default, the current 1C cluster was set to- "8", but over the course of several hours of operation the server became very unstable, user sessions froze. After isolating each infobase (value- "1") the problems disappeared.

Number of connections per process- default value is "128". Since the current database has a very large load of background tasks (logistics calculations, price list analysis, competitor analysis, etc.), it was decided to reduce the number to “25”.

The settings of the 1C cluster itself have changed slightly:

Fault tolerance level- This the number of working servers that can fail simultaneously without causing users to crash. Backup services are launched automatically in the amount necessary to ensure the specified fault tolerance. In real time, the active service is replicated to the backup ones.

Load sharing mode - there are two options for the parameter: “Priority by performance” - more server memory is spent and performance is higher, “Priority by memory” - the 1C cluster saves server memory.

Instead of an afterword. The 1C 8.3 cluster works noticeably faster and more reliably, creating a user session with the infobase is many times faster, the interface in compatibility mode with 1C 8.2.16 can be said to fly. Of course, there are nuances, but where would we be without them? Good luck in setting up the new 1C 8.3 cluster.

views