annotate Sphinx/source/plugins/postgresql.rst @ 885:dff54191a382

typo
author Alain Mazy <am@osimis.io>
date Mon, 24 Oct 2022 09:28:49 +0200
parents 8b8df1be0cf9
children 1316bc62b5d5
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
24
25fa874803ab plugins inside book
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
1 .. _postgresql:
25fa874803ab plugins inside book
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
2
25fa874803ab plugins inside book
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
3
25fa874803ab plugins inside book
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
4 PostgreSQL plugins
25fa874803ab plugins inside book
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
5 ==================
25fa874803ab plugins inside book
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
6
27
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
7 .. contents::
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
8
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
9 The Orthanc project provides two **official** plugins to replace the
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
10 default storage area (on the filesystem) and the default SQLite index
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
11 by a PostgreSQL database.
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
12
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
13 For general information, check out the `official homepage of the
358
011b01ccf52d fixing external hyperlinks
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 336
diff changeset
14 plugins <https://www.orthanc-server.com/static.php?page=postgresql>`__.
27
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
15
643
411e82bb3a9f documenting revisions and multiple writers
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 560
diff changeset
16 For information about scalability, make sure to read the section about
411e82bb3a9f documenting revisions and multiple writers
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 560
diff changeset
17 :ref:`multiple writers in large-scale deployments <multiple-writers>`.
411e82bb3a9f documenting revisions and multiple writers
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 560
diff changeset
18
750
8b8df1be0cf9 documenting odbc
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 643
diff changeset
19 The source code of the PostgreSQL plugins can be found in the
8b8df1be0cf9 documenting odbc
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 643
diff changeset
20 ``orthanc-databases`` `Mercurial repository
8b8df1be0cf9 documenting odbc
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 643
diff changeset
21 <https://hg.orthanc-server.com/orthanc-databases/>`__, next to the
8b8df1be0cf9 documenting odbc
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 643
diff changeset
22 source code of the :ref:`ODBC <odbc>` and
8b8df1be0cf9 documenting odbc
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 643
diff changeset
23 :ref:`MySQL/MariaDB <mysql>` plugins.
27
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
24
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
25
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
26 Compilation
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
27 -----------
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
28
128
f2abbac22d5c postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 118
diff changeset
29 Static linking
f2abbac22d5c postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 118
diff changeset
30 ^^^^^^^^^^^^^^
f2abbac22d5c postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 118
diff changeset
31
27
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
32 .. highlight:: text
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
33
154
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 129
diff changeset
34 The procedure to compile these plugins is similar to that for the
27
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
35 :ref:`core of Orthanc <compiling>`. The following commands should work
154
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 129
diff changeset
36 for most UNIX-like distribution (including GNU/Linux)::
27
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
37
154
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 129
diff changeset
38 $ mkdir BuildPostgreSQL
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 129
diff changeset
39 $ cd BuildPostgreSQL
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 129
diff changeset
40 $ cmake ../PostgreSQL -DSTATIC_BUILD=ON -DCMAKE_BUILD_TYPE=Release
27
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
41 $ make
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
42
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
43 The compilation will produce 2 shared libraries, each containing one plugin for Orthanc:
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
44
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
45 * ``OrthancPostgreSQLIndex`` replaces the default SQLite index of Orthanc by PostgreSQL.
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
46 * ``OrthancPostgreSQLStorage`` makes Orthanc store the DICOM files it receives into PostgreSQL.
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
47
128
f2abbac22d5c postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 118
diff changeset
48
f2abbac22d5c postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 118
diff changeset
49 Microsoft Windows and Apple OS X
f2abbac22d5c postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 118
diff changeset
50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
f2abbac22d5c postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 118
diff changeset
51
750
8b8df1be0cf9 documenting odbc
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 643
diff changeset
52 Pre-compiled binaries for Microsoft Windows 32bit `are also available
358
011b01ccf52d fixing external hyperlinks
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 336
diff changeset
53 <https://www.orthanc-server.com/browse.php?path=/plugin-postgresql>`__.
30
79b6d3ea92aa dicomweb
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 28
diff changeset
54 A package for `Apple's Mac OS X
358
011b01ccf52d fixing external hyperlinks
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 336
diff changeset
55 <https://www.osimis.io/en/download.html>`__
011b01ccf52d fixing external hyperlinks
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 336
diff changeset
56 is available courtesy of `Osimis <https://www.osimis.io/>`__.
27
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
57
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
58
263
39609c9a2c41 note about includes for postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 181
diff changeset
59 .. _postgresql-ubuntu1604:
39609c9a2c41 note about includes for postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 181
diff changeset
60
128
f2abbac22d5c postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 118
diff changeset
61 Dynamic linking on Ubuntu 16.04
f2abbac22d5c postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 118
diff changeset
62 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
f2abbac22d5c postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 118
diff changeset
63
f2abbac22d5c postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 118
diff changeset
64 .. highlight:: text
f2abbac22d5c postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 118
diff changeset
65
f2abbac22d5c postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 118
diff changeset
66 If static linking is not desired, here are build instructions for
f2abbac22d5c postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 118
diff changeset
67 Ubuntu 16.04 (provided build dependencies for the :ref:`core of
f2abbac22d5c postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 118
diff changeset
68 Orthanc <compiling>` have already been installed)::
f2abbac22d5c postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 118
diff changeset
69
f2abbac22d5c postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 118
diff changeset
70 $ sudo apt-get install libpq-dev postgresql-server-dev-all
154
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 129
diff changeset
71 $ mkdir BuildPostgreSQL
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 129
diff changeset
72 $ cd BuildPostgreSQL
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 129
diff changeset
73 $ cmake ../PostgreSQL -DCMAKE_BUILD_TYPE=Release \
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 129
diff changeset
74 -DALLOW_DOWNLOADS=ON \
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 129
diff changeset
75 -DUSE_SYSTEM_GOOGLE_TEST=OFF \
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 129
diff changeset
76 -DUSE_SYSTEM_ORTHANC_SDK=OFF
128
f2abbac22d5c postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 118
diff changeset
77 $ make
f2abbac22d5c postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 118
diff changeset
78
263
39609c9a2c41 note about includes for postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 181
diff changeset
79
39609c9a2c41 note about includes for postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 181
diff changeset
80 .. _postgresql-cmake:
39609c9a2c41 note about includes for postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 181
diff changeset
81
39609c9a2c41 note about includes for postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 181
diff changeset
82 Dynamic linking on other GNU/Linux distributions
39609c9a2c41 note about includes for postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 181
diff changeset
83 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
39609c9a2c41 note about includes for postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 181
diff changeset
84
39609c9a2c41 note about includes for postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 181
diff changeset
85 .. highlight:: text
39609c9a2c41 note about includes for postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 181
diff changeset
86
39609c9a2c41 note about includes for postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 181
diff changeset
87 The build instructions should always be very similar to those for
39609c9a2c41 note about includes for postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 181
diff changeset
88 :ref:`Ubuntu 16.04 <postgresql-ubuntu1604>`. One difficulty that could
39609c9a2c41 note about includes for postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 181
diff changeset
89 however arise is that it is possible that the CMake environment that
39609c9a2c41 note about includes for postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 181
diff changeset
90 is shipped with the GNU/Linux distribution cannot locate a recent
39609c9a2c41 note about includes for postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 181
diff changeset
91 version of the development headers for PostgreSQL. This leads to an
39609c9a2c41 note about includes for postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 181
diff changeset
92 error while invoking CMake that looks like::
39609c9a2c41 note about includes for postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 181
diff changeset
93
39609c9a2c41 note about includes for postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 181
diff changeset
94 -- Could NOT find PostgreSQL (missing: PostgreSQL_TYPE_INCLUDE_DIR)
39609c9a2c41 note about includes for postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 181
diff changeset
95
39609c9a2c41 note about includes for postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 181
diff changeset
96 In such a situation, please add your version of PostgreSQL to the
39609c9a2c41 note about includes for postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 181
diff changeset
97 macro ``PostgreSQL_ADDITIONAL_VERSIONS`` that is defined at the end of
39609c9a2c41 note about includes for postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 181
diff changeset
98 the `Resources/CMake/PostgreSQLConfiguration.cmake file
449
2922fb1bd65e fix links
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 445
diff changeset
99 <https://hg.orthanc-server.com/orthanc-databases/file/default/Resources/CMake/PostgreSQLConfiguration.cmake>`__
361
84e3a2612c36 links to hg
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 358
diff changeset
100 in the sources of the project.
263
39609c9a2c41 note about includes for postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 181
diff changeset
101
128
f2abbac22d5c postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 118
diff changeset
102
27
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
103 Usage
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
104 -----
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
105
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
106 .. highlight:: json
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
107
31
93bbfaf0e62c worklist instructions migrated to a specific page, indexing of Osimis Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 30
diff changeset
108 You of course first have to :ref:`install Orthanc <binaries>`, with a
154
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 129
diff changeset
109 version above 0.9.5. You then have to **create a database** dedicated
28
dc235678897c webviewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 27
diff changeset
110 to Orthanc on some PostgreSQL server. Please refer to the `PostgreSQL
dc235678897c webviewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 27
diff changeset
111 documentation
358
011b01ccf52d fixing external hyperlinks
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 336
diff changeset
112 <https://www.postgresql.org/docs/current/tutorial-createdb.html>`__.
27
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
113
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
114 Once Orthanc is installed and the database is created, you must add a
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
115 section in the :ref:`configuration file <configuration>` that
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
116 specifies the address of the **PostgreSQL server together with your
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
117 credentials**. You also have to tell Orthanc in which path it can find
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
118 the plugins: This is done by properly modifying the ``Plugins``
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
119 option. You could for instance adapt the following configuration
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
120 file::
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
121
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
122 {
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
123 "Name" : "MyOrthanc",
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
124 "PostgreSQL" : {
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
125 "EnableIndex" : true,
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
126 "EnableStorage" : true,
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
127 "Host" : "localhost",
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
128 "Port" : 5432,
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
129 "Database" : "orthanc",
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
130 "Username" : "orthanc",
181
c7551e19ae95 sslmode
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 154
diff changeset
131 "Password" : "orthanc",
643
411e82bb3a9f documenting revisions and multiple writers
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 560
diff changeset
132 "EnableSsl" : false, // New in release 3.0
411e82bb3a9f documenting revisions and multiple writers
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 560
diff changeset
133 "MaximumConnectionRetries" : 10, // New in release 3.0
411e82bb3a9f documenting revisions and multiple writers
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 560
diff changeset
134 "ConnectionRetryInterval" : 5, // New in release 3.0
411e82bb3a9f documenting revisions and multiple writers
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 560
diff changeset
135 "IndexConnectionsCount" : 1 // New in release 4.0
27
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
136 },
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
137 "Plugins" : [
154
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 129
diff changeset
138 "/home/user/orthanc-databases/BuildPostgreSQL/libOrthancPostgreSQLIndex.so",
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 129
diff changeset
139 "/home/user/orthanc-databases/BuildPostgreSQL/libOrthancPostgreSQLStorage.so"
27
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
140 ]
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
141 }
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
142
154
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 129
diff changeset
143 **Important:** The ``EnableIndex`` and ``EnableStorage`` options must
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 129
diff changeset
144 be explicitly set to ``true``, otherwise Orthanc will continue to use
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 129
diff changeset
145 its default SQLite back-end and the filesystem storage area.
27
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
146
181
c7551e19ae95 sslmode
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 154
diff changeset
147 **Remark 1:** When using the ``Storage`` PostgreSQL plugin, the DICOM
154
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 129
diff changeset
148 files are stored as large objects in the database. This might
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 129
diff changeset
149 actually consume more space than the DICOM file itself. We have
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 129
diff changeset
150 observed overhead up to 40%. However, it seems this overhead is
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 129
diff changeset
151 temporary and comes from Write-Ahead Logging. Check this `discussion
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 129
diff changeset
152 <https://groups.google.com/d/msg/orthanc-users/pPzHOpb--iw/QkKZ808gIgAJ>`__
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 129
diff changeset
153 on the Orthanc Users group for more info).
118
a30abf63ccba postgres: reference to forum for space usage
amazy
parents: 94
diff changeset
154
181
c7551e19ae95 sslmode
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 154
diff changeset
155 **Remark 2:** A typical usage of the PostgreSQL plugin is to enable
c7551e19ae95 sslmode
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 154
diff changeset
156 only the ``Index``, and to use the default filesystem storage for
c7551e19ae95 sslmode
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 154
diff changeset
157 DICOM files (on a NAS with proper disaster recovery strategies). This
c7551e19ae95 sslmode
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 154
diff changeset
158 setup provides best performance for large-scale databases.
c7551e19ae95 sslmode
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 154
diff changeset
159
c7551e19ae95 sslmode
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 154
diff changeset
160 **Remark 3:** Setting the ``EnableSsl`` to ``true`` forces the use of
c7551e19ae95 sslmode
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 154
diff changeset
161 `SSL connections
c7551e19ae95 sslmode
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 154
diff changeset
162 <https://www.postgresql.org/docs/current/libpq-ssl.html>`__ between
c7551e19ae95 sslmode
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 154
diff changeset
163 Orthanc and the PostgreSQL server. It is a synonym for
c7551e19ae95 sslmode
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 154
diff changeset
164 ``sslmode=require`` in connections URI (see below). Setting
c7551e19ae95 sslmode
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 154
diff changeset
165 ``EnableSsl`` to ``false`` corresponds to ``sslmode=disable``
c7551e19ae95 sslmode
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 154
diff changeset
166 (i.e. SSL is not used, even if it is both available in Orthanc and
c7551e19ae95 sslmode
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 154
diff changeset
167 PostgreSQL). To choose other values for the SSL mode (i.e. ``allow``
c7551e19ae95 sslmode
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 154
diff changeset
168 and ``prefer``), please use connection URIs.
118
a30abf63ccba postgres: reference to forum for space usage
amazy
parents: 94
diff changeset
169
a30abf63ccba postgres: reference to forum for space usage
amazy
parents: 94
diff changeset
170
94
b0a71b880ca0 fix link + remark about disk usage overhead
Alain Mazy <alain@mazy.be>
parents: 81
diff changeset
171
27
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
172 .. highlight:: text
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
173
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
174 Orthanc must of course be **restarted** after the modification of its
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
175 configuration file. The log will contain an output similar to::
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
176
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
177 $ ./Orthanc Configuration.json
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
178 W0212 16:30:34.576972 11285 main.cpp:632] Orthanc version: 0.8.6
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
179 W0212 16:30:34.577386 11285 OrthancInitialization.cpp:80] Using the configuration from: Configuration.json
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
180 [...]
154
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 129
diff changeset
181 W0212 16:30:34.598053 11285 main.cpp:379] Registering a plugin from: /home/jodogne/Subversion/orthanc-databases/BuildPostgreSQL/libOrthancPostgreSQLIndex.so
27
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
182 W0212 16:30:34.598470 11285 PluginsManager.cpp:258] Registering plugin 'postgresql-index' (version 1.0)
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
183 W0212 16:30:34.598491 11285 PluginsManager.cpp:148] Using PostgreSQL index
154
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 129
diff changeset
184 W0212 16:30:34.608289 11285 main.cpp:379] Registering a plugin from: /home/jodogne/Subversion/orthanc-databases/BuildPostgreSQL/libOrthancPostgreSQLStorage.so
27
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
185 W0212 16:30:34.608916 11285 PluginsManager.cpp:258] Registering plugin 'postgresql-storage' (version 1.0)
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
186 W0212 16:30:34.608947 11285 PluginsManager.cpp:148] Using PostgreSQL storage area
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
187 [...]
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
188 W0212 16:30:34.674648 11285 main.cpp:530] Orthanc has started
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
189
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
190
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
191 .. highlight:: json
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
192
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
193 Instead of specifying explicit authentication parameters, you can also
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
194 use the `PostgreSQL connection URIs syntax
358
011b01ccf52d fixing external hyperlinks
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 336
diff changeset
195 <https://www.postgresql.org/docs/current/libpq-connect.html#LIBPQ-CONNSTRING>`__. For
27
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
196 instance::
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
197
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
198 {
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
199 "Name" : "MyOrthanc",
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
200 "PostgreSQL" : {
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
201 "EnableIndex" : true,
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
202 "EnableStorage" : true,
181
c7551e19ae95 sslmode
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 154
diff changeset
203 "ConnectionUri" : "postgresql://username:password@localhost:5432/database?sslmode=prefer"
27
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
204 },
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
205 "Plugins" : [
154
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 129
diff changeset
206 "/home/user/orthanc-databases/BuildPostgreSQL/libOrthancPostgreSQLIndex.so",
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 129
diff changeset
207 "/home/user/orthanc-databases/BuildPostgreSQL/libOrthancPostgreSQLStorage.so"
27
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
208 ]
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
209 }
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
210
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
211
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
212 **Remark:** The Debian Med project maintains `another useful set of
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
213 instructions
358
011b01ccf52d fixing external hyperlinks
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 336
diff changeset
214 <https://salsa.debian.org/med-team/orthanc-postgresql/-/blob/master/debian/README.Debian>`__.
27
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
215
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
216
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
217 Advanced options
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
218 ----------------
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
219
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
220 Several advanced options are available as well to fine-tune the
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
221 configuration of the PostgreSQL plugins. They are documented below.
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
222
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
223
643
411e82bb3a9f documenting revisions and multiple writers
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 560
diff changeset
224 .. _postgresql-multiple-writers:
411e82bb3a9f documenting revisions and multiple writers
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 560
diff changeset
225
411e82bb3a9f documenting revisions and multiple writers
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 560
diff changeset
226 Multiple writers or connections
411e82bb3a9f documenting revisions and multiple writers
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 560
diff changeset
227 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
411e82bb3a9f documenting revisions and multiple writers
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 560
diff changeset
228
411e82bb3a9f documenting revisions and multiple writers
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 560
diff changeset
229 Starting with Orthanc 1.9.2 and PostgreSQL 4.0, it is possible to use
411e82bb3a9f documenting revisions and multiple writers
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 560
diff changeset
230 :ref:`multiple writers or connections in large-scale deployments
411e82bb3a9f documenting revisions and multiple writers
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 560
diff changeset
231 <multiple-writers>`. Here is the list of configuration that control
411e82bb3a9f documenting revisions and multiple writers
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 560
diff changeset
232 this behavior:
411e82bb3a9f documenting revisions and multiple writers
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 560
diff changeset
233
411e82bb3a9f documenting revisions and multiple writers
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 560
diff changeset
234 * ``Lock`` must be set to ``false`` (cf. :ref:`below <postgresql-lock>`)
411e82bb3a9f documenting revisions and multiple writers
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 560
diff changeset
235
411e82bb3a9f documenting revisions and multiple writers
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 560
diff changeset
236 * ``MaximumConnectionRetries`` governs how many times Orthanc tries to
411e82bb3a9f documenting revisions and multiple writers
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 560
diff changeset
237 connect to the database, as well as how many times Orthanc replays
411e82bb3a9f documenting revisions and multiple writers
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 560
diff changeset
238 transactions to deal with collisions between multiple writers.
411e82bb3a9f documenting revisions and multiple writers
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 560
diff changeset
239
411e82bb3a9f documenting revisions and multiple writers
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 560
diff changeset
240 * ``IndexConnectionsCount`` controls the number of connections from
411e82bb3a9f documenting revisions and multiple writers
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 560
diff changeset
241 the index plugin to the PostgreSQL database. It is set to ``1`` by
411e82bb3a9f documenting revisions and multiple writers
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 560
diff changeset
242 default, which corresponds to the old behavior of Orthanc <= 1.9.1.
411e82bb3a9f documenting revisions and multiple writers
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 560
diff changeset
243
411e82bb3a9f documenting revisions and multiple writers
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 560
diff changeset
244 * ``ConnectionRetryInterval`` is only used when opening one database
411e82bb3a9f documenting revisions and multiple writers
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 560
diff changeset
245 connection to PostgreSQL.
411e82bb3a9f documenting revisions and multiple writers
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 560
diff changeset
246
411e82bb3a9f documenting revisions and multiple writers
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 560
diff changeset
247 * The PostgreSQL plugin supports the :ref:`revision mechanism
411e82bb3a9f documenting revisions and multiple writers
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 560
diff changeset
248 <revisions>` to protect metadata and attachments from concurrent
411e82bb3a9f documenting revisions and multiple writers
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 560
diff changeset
249 modifications.
411e82bb3a9f documenting revisions and multiple writers
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 560
diff changeset
250
411e82bb3a9f documenting revisions and multiple writers
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 560
diff changeset
251
411e82bb3a9f documenting revisions and multiple writers
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 560
diff changeset
252
270
f29d75bc5c25 more info about database locking
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 263
diff changeset
253 .. _postgresql-lock:
f29d75bc5c25 more info about database locking
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 263
diff changeset
254
27
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
255 Locking
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
256 ^^^^^^^
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
257
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
258 .. highlight:: json
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
259
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
260 By default, the plugins lock the database (using `PostgreSQL advisory
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
261 locks
358
011b01ccf52d fixing external hyperlinks
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 336
diff changeset
262 <https://www.postgresql.org/docs/current/functions-admin.html#FUNCTIONS-ADVISORY-LOCKS>`__)
27
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
263 to prevent other instances of Orthanc from using the same PostgreSQL
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
264 database. If you want several instances of Orthanc to share the same
643
411e82bb3a9f documenting revisions and multiple writers
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 560
diff changeset
265 database or if you need multiple connections to the PostgreSQL
27
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
266 database, set the ``Lock`` option to ``false`` in the configuration
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
267 file::
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
268
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
269 {
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
270 "Name" : "MyOrthanc",
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
271 "PostgreSQL" : {
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
272 "EnableIndex" : true,
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
273 "EnableStorage" : true,
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
274 "Lock" : false,
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
275 "ConnectionUri" : "postgresql://username:password@localhost:5432/database"
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
276 },
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
277 "Plugins" : [
154
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 129
diff changeset
278 "/home/user/orthanc-databases/BuildPostgreSQL/libOrthancPostgreSQLIndex.so",
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 129
diff changeset
279 "/home/user/orthanc-databases/BuildPostgreSQL/libOrthancPostgreSQLStorage.so"
27
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
280 ]
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
281 }
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
282
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
283 Obviously, one must be very cautious when sharing the same database
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
284 between instances of Orthanc. In particular, all these instances
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
285 should share the same configuration.
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
286
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
287
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
288 Keep-alive
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
289 ^^^^^^^^^^
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
290
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
291 .. highlight:: text
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
292
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
293 After some period of inactivity (users have reported 10 hours), you
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
294 might `experience an error
445
987fbbc2b59e leaving bitbucket wrt. bug tracker
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 438
diff changeset
295 <https://bugs.orthanc-server.com/show_bug.cgi?id=15>`__ such as::
27
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
296
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
297 E0220 03:20:51.562601 PluginsManager.cpp:163] Exception in database back-end: Error in PostgreSQL: server closed the connection unexpectedly.
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
298 This probably means the server terminated abnormally before or while processing the request.
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
299 E0220 06:51:03.924868 PluginsManager.cpp:163] Exception in database back-end: Error in PostgreSQL: no connection to the server
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
300
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
301 This is due to a timeout in the PostgreSQL server. Please make sure to
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
302 `enable keep-alive
358
011b01ccf52d fixing external hyperlinks
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 336
diff changeset
303 <https://dba.stackexchange.com/questions/97534/is-there-a-timeout-option-for-remote-access-to-postgresql-database>`__
27
c23f02a64caf postgresql
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 24
diff changeset
304 in the configuration of your PostgreSQL server
438
5d6d593bceb6 scalability section
Alain Mazy <alain@mazy.be>
parents: 429
diff changeset
305
5d6d593bceb6 scalability section
Alain Mazy <alain@mazy.be>
parents: 429
diff changeset
306
5d6d593bceb6 scalability section
Alain Mazy <alain@mazy.be>
parents: 429
diff changeset
307 Scalability
5d6d593bceb6 scalability section
Alain Mazy <alain@mazy.be>
parents: 429
diff changeset
308 ^^^^^^^^^^^
5d6d593bceb6 scalability section
Alain Mazy <alain@mazy.be>
parents: 429
diff changeset
309
5d6d593bceb6 scalability section
Alain Mazy <alain@mazy.be>
parents: 429
diff changeset
310 When configuring your PostgreSQL plugin, ensure you've read the :ref:`scalability section
5d6d593bceb6 scalability section
Alain Mazy <alain@mazy.be>
parents: 429
diff changeset
311 <scalability>`
531
fcf614950f31 disable scram
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 449
diff changeset
312
fcf614950f31 disable scram
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 449
diff changeset
313
fcf614950f31 disable scram
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 449
diff changeset
314 Troubleshooting
fcf614950f31 disable scram
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 449
diff changeset
315 ---------------
fcf614950f31 disable scram
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 449
diff changeset
316
fcf614950f31 disable scram
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 449
diff changeset
317 SCRAM authentication
fcf614950f31 disable scram
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 449
diff changeset
318 ^^^^^^^^^^^^^^^^^^^^
fcf614950f31 disable scram
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 449
diff changeset
319
560
5c0dfc863884 note for postgresql 3.3
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 531
diff changeset
320 .. note:: This section only applies to releases <= 3.2 of the
5c0dfc863884 note for postgresql 3.3
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 531
diff changeset
321 PostgreSQL plugins. Starting with release 3.3, the plugins
5c0dfc863884 note for postgresql 3.3
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 531
diff changeset
322 use a version of libpq that should support SCRAM
5c0dfc863884 note for postgresql 3.3
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 531
diff changeset
323 authentication.
5c0dfc863884 note for postgresql 3.3
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 531
diff changeset
324
5c0dfc863884 note for postgresql 3.3
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 531
diff changeset
325 In the releases 3.2 of the PostgreSQL plugins, the precompiled
5c0dfc863884 note for postgresql 3.3
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 531
diff changeset
326 binaries use an old, but stable version of the PostgreSQL client
5c0dfc863884 note for postgresql 3.3
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 531
diff changeset
327 (libpq 9.6.1). This makes these binaries very portable, however they
5c0dfc863884 note for postgresql 3.3
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 531
diff changeset
328 might not be compatible with more recent features of PostgreSQL.
531
fcf614950f31 disable scram
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 449
diff changeset
329
fcf614950f31 disable scram
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 449
diff changeset
330 In particular, the precompiled binaries are not compatible with `SCRAM
fcf614950f31 disable scram
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 449
diff changeset
331 authentication
fcf614950f31 disable scram
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 449
diff changeset
332 <https://en.wikipedia.org/wiki/Salted_Challenge_Response_Authentication_Mechanism>`__
fcf614950f31 disable scram
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 449
diff changeset
333 that is available since PostgreSQL 10. If you get the error ``psql:
fcf614950f31 disable scram
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 449
diff changeset
334 authentication method 10 not supported``, this indicates that the
fcf614950f31 disable scram
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 449
diff changeset
335 PostgreSQL plugins cannot connect to a PostgreSQL server because SCRAM
fcf614950f31 disable scram
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 449
diff changeset
336 is enabled.
fcf614950f31 disable scram
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 449
diff changeset
337
fcf614950f31 disable scram
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 449
diff changeset
338 `Ian Smith
fcf614950f31 disable scram
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 449
diff changeset
339 <https://groups.google.com/g/orthanc-users/c/4EH7HpcEnSA/m/a4x6oiucAgAJ>`__
fcf614950f31 disable scram
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 449
diff changeset
340 has reported the following method to disable SCRAM:
fcf614950f31 disable scram
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 449
diff changeset
341
fcf614950f31 disable scram
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 449
diff changeset
342 1. Drop/delete the ``orthanc`` database and user in PostgreSQL.
fcf614950f31 disable scram
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 449
diff changeset
343 2. Edit the files ``postgresql.conf`` and ``pg_hba.conf`` and change
fcf614950f31 disable scram
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 449
diff changeset
344 ``scram-sha-256`` to ``md5`` in all cases.
fcf614950f31 disable scram
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 449
diff changeset
345 3. Add the ``orthanc`` user and database in PostgreSQL again.
fcf614950f31 disable scram
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 449
diff changeset
346 4. Restart Orthanc.