Orthanc ignoring "MaximumStorageSize" indicated

1,568 views
Skip to first unread message

Jonathan salas

unread,
Mar 29, 2019, 10:10:05 AM3/29/19
to Orthanc Users

Hello,
     As part of stress testing I wanted to see what happens when orthanc hits the storage limit indicated in the configuration file. I set my storage size to 1MB, but then successfully uploaded a 50MB file via API as per files and logs below. This is on windows 7.

Enter code {
 
/**
   * General configuration of Orthanc
   **/


 
// The logical name of this instance of Orthanc. This one is
 
// displayed in Orthanc Explorer and at the URI "/system".
 
"Name" : "TRANSEPPACS-A",

 
// Path to the directory that holds the heavyweight files (i.e. the
 
// raw DICOM instances). Backslashes must be either escaped by
 
// doubling them, or replaced by forward slashes "/".
 
"StorageDirectory" : "C:\\PACS Testing/Disk Quota testing/Quota test storage",


 
// Path to the directory that holds the SQLite index (if unset, the
 
// value of StorageDirectory is used). This index could be stored on
 
// a RAM-drive or a SSD device for performance reasons.
 
"IndexDirectory" : "C:\\PACS Testing/Disk Quota testing/Quota test storage",

 
// Enable the transparent compression of the DICOM instances
 
"StorageCompression" : false,

 
// Maximum size of the storage in MB (a value of "0" indicates no
 
// limit on the storage size)
 
"MaximumStorageSize" : 1,

 
// Maximum number of patients that can be stored at a given time
 
// in the storage (a value of "0" indicates no limit on the number
 
// of patients)
 
"MaximumPatientCount" : 0,
 
 
// List of paths to the custom Lua scripts that are to be loaded
 
// into this instance of Orthanc
 
"LuaScripts" : [
 
],

 
// List of paths to the plugins that are to be loaded into this
 
// instance of Orthanc (e.g. "./libPluginTest.so" for Linux, or
 
// "./PluginTest.dll" for Windows). These paths can refer to
 
// folders, in which case they will be scanned non-recursively to
 
// find shared libraries. Backslashes must be either escaped by
 
// doubling them, or replaced by forward slashes "/".
 
"Plugins" : [ "../Plugins/" ],

 
// Maximum number of processing jobs that are simultaneously running
 
// at any given time. A value of "0" indicates to use all the
 
// available CPU logical cores. To emulate Orthanc <= 1.3.2, set
 
// this value to "1".
 
"ConcurrentJobs" : 0,


 
/**
   * Configuration of the HTTP server
   **/


 
// Enable the HTTP server. If this parameter is set to "false",
 
// Orthanc acts as a pure DICOM server. The REST API and Orthanc
 
// Explorer will not be available.
 
"HttpServerEnabled" : true,

 
// HTTP port for the REST services and for the GUI
 
"HttpPort" : 8042,

 
// When the following option is "true", if an error is encountered
 
// while calling the REST API, a JSON message describing the error
 
// is put in the HTTP answer. This feature can be disabled if the
 
// HTTP client does not properly handles such answers.
 
"HttpDescribeErrors" : true,

 
// Enable HTTP compression to improve network bandwidth utilization,
 
// at the expense of more computations on the server. Orthanc
 
// supports the "gzip" and "deflate" HTTP encodings.
 
"HttpCompressionEnabled" : true,



 
/**
   * Configuration of the DICOM server
   **/


 
// Enable the DICOM server. If this parameter is set to "false",
 
// Orthanc acts as a pure REST server. It will not be possible to
 
// receive files or to do query/retrieve through the DICOM protocol.
 
"DicomServerEnabled" : true,

 
// The DICOM Application Entity Title
 
"DicomAet" : "TRANSEPPACS-A",

 
// Check whether the called AET corresponds to the AET of Orthanc
 
// during an incoming DICOM SCU request
 
"DicomCheckCalledAet" : false,

 
// The DICOM port
 
"DicomPort" : 4242,

 
// The default encoding that is assumed for DICOM files without
 
// "SpecificCharacterSet" DICOM tag, and that is used when answering
 
// C-Find requests (including worklists). The allowed values are
 
// "Ascii", "Utf8", "Latin1", "Latin2", "Latin3", "Latin4",
 
// "Latin5", "Cyrillic", "Windows1251", "Arabic", "Greek", "Hebrew",
 
// "Thai", "Japanese", and "Chinese".
 
"DefaultEncoding" : "Latin1",

 
// The transfer syntaxes that are accepted by Orthanc C-Store SCP
 
"DeflatedTransferSyntaxAccepted"     : true,
 
"JpegTransferSyntaxAccepted"         : true,
 
"Jpeg2000TransferSyntaxAccepted"     : true,
 
"JpegLosslessTransferSyntaxAccepted" : true,
 
"JpipTransferSyntaxAccepted"         : true,
 
"Mpeg2TransferSyntaxAccepted"        : true,
 
"RleTransferSyntaxAccepted"          : true,

 
// Whether Orthanc accepts to act as C-Store SCP for unknown storage
 
// SOP classes (aka. "promiscuous mode")
 
"UnknownSopClassAccepted"            : true,

 
// Set the timeout (in seconds) after which the DICOM associations
 
// are closed by the Orthanc SCP (server) if no further DIMSE
 
// command is received from the SCU (client).
 
"DicomScpTimeout" : 60,



 
/**
   * Security-related options for the HTTP server
   **/


 
// Whether remote hosts can connect to the HTTP server
 
"RemoteAccessAllowed" : true,

 
// Whether or not SSL is enabled
 
"SslEnabled" : false,

 
// Path to the SSL certificate in the PEM format (meaningful only if
 
// SSL is enabled)
 
"SslCertificate" : "certificate.pem",

 
// Whether or not the password protection is enabled
 
"AuthenticationEnabled" : false,

 
// The list of the registered users. Because Orthanc uses HTTP
 
// Basic Authentication, the passwords are stored as plain text.
 
"RegisteredUsers" : {
   
// "alice" : "alicePassword"
 
},



 
/**
   * Network topology
   **/


 
// The list of the known DICOM modalities
 
"DicomModalities" : {
   
"CartoQuery" : [ "CARTO3Q", "192.168.123.3", 4242],
   
"CartoRestore" : [ "CARTO3R", "192.168.123.3", 4242],
   
"CartoStore" : [ "CARTO3S", "192.168.123.3", 4242],
   
"CLSWS1234" : [ "CLSWS1234", "192.168.123.7", 1225]

   
/**
     * Uncommenting the following line would enable Orthanc to
     * connect to an instance of the "storescp" open-source DICOM
     * store (shipped in the DCMTK distribution) started by the
     * command line "storescp 2000".
     **/

   
// "sample" : [ "STORESCP", "127.0.0.1", 2000 ]

   
/**
     * A fourth parameter is available to enable patches for
     * specific PACS manufacturers. The allowed values are currently:
     * - "Generic" (default value),
     * - "GenericNoWildcardInDates" (to replace "*" by "" in date fields
     *   in outgoing C-Find requests originating from Orthanc),
     * - "GenericNoUniversalWildcard" (to replace "*" by "" in all fields
     *   in outgoing C-Find SCU requests originating from Orthanc),
     * - "StoreScp" (storescp tool from DCMTK),
     * - "ClearCanvas",
     * - "Dcm4Chee",
     * - "Vitrea",
     * - "GE" (Enterprise Archive, MRI consoles and Advantage Workstation
     *   from GE Healthcare).
     *
     * This parameter is case-sensitive.
     **/

   
// "clearcanvas" : [ "CLEARCANVAS", "192.168.1.1", 104, "ClearCanvas" ]

   
/**
     * By default, the Orthanc SCP accepts all DICOM commands (C-GET,
     * C-STORE, C-FIND, C-MOVE) issued by the remote SCU
     * modalities. Starting with Orthanc 1.5.0, it is possible to
     * specify which DICOM commands are allowed, separately for each
     * remote modality, using the syntax below.
     **/

   
//"untrusted" : {
   
//  "AET" : "ORTHANC",
   
//  "Port" : 104,
   
//  "Host" : "127.0.0.1",
   
//  "AllowEcho" : false,
   
//  "AllowFind" : false,
   
//  "AllowMove" : false,
   
//  "AllowStore" : true
   
//}
 
},

 
// Whether to store the DICOM modalities in the Orthanc database
 
// instead of in this configuration file (new in Orthanc 1.5.0)
 
"DicomModalitiesInDatabase" : false,

 
// Whether the Orthanc SCP allows incoming C-Echo requests, even
 
// from SCU modalities it does not know about (i.e. that are not
 
// listed in the "DicomModalities" option above). Orthanc 1.3.0
 
// is the only version to behave as if this argument was set to "false".
 
"DicomAlwaysAllowEcho" : true,

 
// Whether the Orthanc SCP allows incoming C-Store requests, even
 
// from SCU modalities it does not know about (i.e. that are not
 
// listed in the "DicomModalities" option above)
 
"DicomAlwaysAllowStore" : true,

 
// Whether Orthanc checks the IP/hostname address of the remote
 
// modality initiating a DICOM connection (as listed in the
 
// "DicomModalities" option above). If this option is set to
 
// "false", Orthanc only checks the AET of the remote modality.
 
"DicomCheckModalityHost" : false,

 
// The timeout (in seconds) after which the DICOM associations are
 
// considered as closed by the Orthanc SCU (client) if the remote
 
// DICOM SCP (server) does not answer.
 
"DicomScuTimeout" : 10,

 
// The list of the known Orthanc peers
 
"OrthancPeers" : {
   
/**
     * Each line gives the base URL of an Orthanc peer, possibly
     * followed by the username/password pair (if the password
     * protection is enabled on the peer).
     **/

   
// "peer"  : [ "http://127.0.0.1:8043/", "alice", "alicePassword" ]
   
// "peer2" : [ "http://127.0.0.1:8044/" ]

   
/**
     * This is another, more advanced format to define Orthanc
     * peers. It notably allows to specify HTTP headers, a HTTPS
     * client certificate in the PEM format (as in the "--cert" option
     * of curl), or to enable PKCS#11 authentication for smart cards.
     **/

   
// "peer" : {
   
//   "Url" : "http://127.0.0.1:8043/",
   
//   "Username" : "alice",
   
//   "Password" : "alicePassword",
   
//   "HttpHeaders" : { "Token" : "Hello world" },
   
//   "CertificateFile" : "client.crt",
   
//   "CertificateKeyFile" : "client.key",
   
//   "CertificateKeyPassword" : "certpass",
   
//   "Pkcs11" : false
   
// }
 
},

 
// Whether to store the Orthanc peers in the Orthanc database
 
// instead of in this configuration file (new in Orthanc 1.5.0)
 
"OrthancPeersInDatabase" : false,

 
// Parameters of the HTTP proxy to be used by Orthanc. If set to the
 
// empty string, no HTTP proxy is used. For instance:
 
//   "HttpProxy" : "192.168.0.1:3128"
 
//   "HttpProxy" : "proxyUser:proxyP...@192.168.0.1:3128"
 
"HttpProxy" : "",

 
// If set to "true", debug messages from libcurl will be issued
 
// whenever Orthanc makes an outgoing HTTP request. This is notably
 
// useful to debug HTTPS-related problems.
 
"HttpVerbose" : false,

 
// Set the timeout for HTTP requests issued by Orthanc (in seconds).
 
"HttpTimeout" : 10,

 
// Enable the verification of the peers during HTTPS requests. This
 
// option must be set to "false" if using self-signed certificates.
 
// Pay attention that setting this option to "false" results in
 
// security risks!
 
// Reference: http://curl.haxx.se/docs/sslcerts.html
 
"HttpsVerifyPeers" : true,

 
// Path to the CA (certification authority) certificates to validate
 
// peers in HTTPS requests. From curl documentation ("--cacert"
 
// option): "Tells curl to use the specified certificate file to
 
// verify the peers. The file may contain multiple CA
 
// certificates. The certificate(s) must be in PEM format." On
 
// Debian-based systems, this option can be set to
 
// "/etc/ssl/certs/ca-certificates.crt"
 
"HttpsCACertificates" : "",



 
/**
   * Advanced options
   **/


 
// Dictionary of symbolic names for the user-defined metadata. Each
 
// entry must map an unique string to an unique number between 1024
 
// and 65535. Reserved values:
 
//  - The Orthanc whole-slide imaging plugin uses metadata 4200
 
"UserMetadata" : {
   
// "Sample" : 1024
 
},

 
// Dictionary of symbolic names for the user-defined types of
 
// attached files. Each entry must map an unique string to an unique
 
// number between 1024 and 65535. Optionally, a second argument can
 
// provided to specify a MIME content type for the attachment.
 
"UserContentType" : {
   
// "sample" : 1024
   
// "sample2" : [ 1025, "application/pdf" ]
 
},

 
// Number of seconds without receiving any instance before a
 
// patient, a study or a series is considered as stable.
 
"StableAge" : 60,

 
// By default, Orthanc compares AET (Application Entity Titles) in a
 
// case-insensitive way. Setting this option to "true" will enable
 
// case-sensitive matching.
 
"StrictAetComparison" : false,

 
// When the following option is "true", the MD5 of the DICOM files
 
// will be computed and stored in the Orthanc database. This
 
// information can be used to detect disk corruption, at the price
 
// of a small performance overhead.
 
"StoreMD5ForAttachments" : true,

 
// The maximum number of results for a single C-FIND request at the
 
// Patient, Study or Series level. Setting this option to "0" means
 
// no limit.
 
"LimitFindResults" : 0,

 
// The maximum number of results for a single C-FIND request at the
 
// Instance level. Setting this option to "0" means no limit.
 
"LimitFindInstances" : 0,

 
// The maximum number of active jobs in the Orthanc scheduler. When
 
// this limit is reached, the addition of new jobs is blocked until
 
// some job finishes.
 
"LimitJobs" : 30,

 
// If this option is set to "true" (default behavior until Orthanc
 
// 1.3.2), Orthanc will log the resources that are exported to other
 
// DICOM modalities or Orthanc peers, inside the URI
 
// "/exports". Setting this option to "false" is useful to prevent
 
// the index to grow indefinitely in auto-routing tasks (this is the
 
// default behavior since Orthanc 1.4.0).
 
"LogExportedResources" : false,

 
// Enable or disable HTTP Keep-Alive (deprecated). Set this option
 
// to "true" only in the case of high HTTP loads.
 
"KeepAlive" : false,

 
// If this option is set to "false", Orthanc will run in index-only
 
// mode. The DICOM files will not be stored on the drive. Note that
 
// this option might prevent the upgrade to newer versions of Orthanc.
 
"StoreDicom" : true,

 
// DICOM associations initiated by Lua scripts are kept open as long
 
// as new DICOM commands are issued. This option sets the number of
 
// seconds of inactivity to wait before automatically closing a
 
// DICOM association used by Lua. If set to 0, the connection is
 
// closed immediately.
 
"DicomAssociationCloseDelay" : 0,

 
// Maximum number of query/retrieve DICOM requests that are
 
// maintained by Orthanc. The least recently used requests get
 
// deleted as new requests are issued.
 
"QueryRetrieveSize" : 10,

 
// When handling a C-Find SCP request, setting this flag to "true"
 
// will enable case-sensitive match for PN value representation
 
// (such as PatientName). By default, the search is
 
// case-insensitive, which does not follow the DICOM standard.
 
"CaseSensitivePN" : false,

 
// Configure PKCS#11 to use hardware security modules (HSM) and
 
// smart cards when carrying on HTTPS client authentication.
 
/**
     "Pkcs11" : {
       "Module" : "/usr/local/lib/libbeidpkcs11.so",
       "Module" : "C:/Windows/System32/beidpkcs11.dll",
       "Pin" : "1234",
       "Verbose" : true
     }
   **/

 
 
// If set to "false", Orthanc will not load its default dictionary
 
// of private tags. This might be necessary if you cannot import a
 
// DICOM file encoded using the Implicit VR Endian transfer syntax,
 
// and containing private tags: Such an import error might stem from
 
// a bad dictionary. You can still list your private tags of
 
// interest in the "Dictionary" configuration option below.
 
"LoadPrivateDictionary" : true,

 
// Locale to be used by Orthanc. Currently, only used if comparing
 
// strings in a case-insensitive way. It should be safe to keep this
 
// value undefined, which lets Orthanc autodetect the suitable locale.
 
// "Locale" : "en_US.UTF-8",

 
// Register a new tag in the dictionary of DICOM tags that are known
 
// to Orthanc. Each line must contain the tag (formatted as 2
 
// hexadecimal numbers), the value representation (2 upcase
 
// characters), a nickname for the tag, possibly the minimum
 
// multiplicity (> 0 with defaults to 1), possibly the maximum
 
// multiplicity (0 means arbitrary multiplicity, defaults to 1), and
 
// possibly the Private Creator (for private tags).
 
"Dictionary" : {
   
// "0014,1020" : [ "DA", "ValidationExpiryDate", 1, 1 ]
   
// "00e1,10c2" : [ "UI", "PET-CT Multi Modality Name", 1, 1, "ELSCINT1" ]
   
// "7053,1003" : [ "ST", "Original Image Filename", 1, 1, "Philips PET Private Group" ]
   
// "2001,5f" : [ "SQ", "StackSequence", 1, 1, "Philips Imaging DD 001" ]
 
},

 
// Whether to run DICOM C-Move operations synchronously. If set to
 
// "false" (the default), each incoming C-Move request results in
 
// creating a new background job. Up to Orthanc 1.3.2, the implicit
 
// behavior was to use synchronous C-Move. Between Orthanc 1.4.0 and
 
// 1.4.2, the default behavior was set to asynchronous C-Move. Since
 
// Orthanc 1.5.0, the default behavior is synchronous C-Move
 
// (backward compatibility with Orthanc <= 1.3.2).
 
"SynchronousCMove" : true,

 
// Maximum number of completed jobs that are kept in memory. A
 
// processing job is considered as complete once it is tagged as
 
// "Success" or "Failure". Since Orthanc 1.5.0, a value of "0"
 
// indicates to keep no job in memory (i.e. jobs are removed from
 
// the history as soon as they are completed).
 
"JobsHistorySize" : 10,

 
// Specifies how Orthanc reacts when it receives a DICOM instance
 
// whose SOPInstanceUID is already stored. If set to "true", the new
 
// instance replaces the old one. If set to "false", the new
 
// instance is discarded and the old one is kept. Up to Orthanc
 
// 1.4.1, the implicit behavior corresponded to "false".
 
"OverwriteInstances" : true,

 
// Maximum number of ZIP/media archives that are maintained by
 
// Orthanc, as a response to the asynchronous creation of archives.
 
// The least recently used archives get deleted as new archives are
 
// generated. This option was introduced in Orthanc 1.5.0, and has
 
// no effect on the synchronous generation of archives.
 
"MediaArchiveSize" : 1,

 
// Performance setting to specify how Orthanc accesses the storage
 
// area during C-FIND. Three modes are available: (1) "Always"
 
// allows Orthanc to read the storage area as soon as it needs an
 
// information that is not present in its database (slowest mode),
 
// (2) "Never" prevents Orthanc from accessing the storage area, and
 
// makes it uses exclusively its database (fastest mode), and (3)
 
// "Answers" allows Orthanc to read the storage area to generate its
 
// answers, but not to filter the DICOM resources (balance between
 
// the two modes). By default, the mode is "Always", which
 
// corresponds to the behavior of Orthanc <= 1.5.0.
 
"StorageAccessOnFind" : "Always"
}
here
...
Enter code here...W0329 09:58:37.604034 main.cpp:1436] Orthanc version: 1.5.6

W0329 09:58:37.611034 OrthancConfiguration.cpp:61] Reading the configuration from: "orthanc.json"

I0329 09:58:37.613034 Toolbox.cpp:1370] Using locale: "" for case-insensitive comparison of strings

I0329 09:58:37.614034 Enumerations.cpp:2217] Default encoding for DICOM was changed to: Latin1

I0329 09:58:37.614034 FromDcmtkBridge.cpp:233] Using DCTMK version: 364

I0329 09:58:37.614034 FromDcmtkBridge.cpp:241] Loading the embedded dictionaries

I0329 09:58:37.654034 FromDcmtkBridge.cpp:253] Loading the embedded dictionary of private tags

I0329 09:58:37.673034 FromDcmtkBridge.cpp:2175] Registering JPEG Lossless codecs in DCMTK

I0329 09:58:37.673034 FromDcmtkBridge.cpp:2180] Registering JPEG codecs in DCMTK

W0329 09:58:37.680034 main.cpp:700] Loading plugin(s) from: ../Plugins/

E0329 09:58:37.680034 PluginsManager.cpp:242] Inexistent path to plugins: ../Plugins/

W0329 09:58:37.680034 OrthancInitialization.cpp:301] SQLite index directory: "C:\PACS Testing/Disk Quota testing/Quota test storage"

W0329 09:58:37.681034 OrthancInitialization.cpp:376] Storage directory: "C:\PACS Testing/Disk Quota testing/Quota test storage"

I0329 09:58:37.682034 SQLiteDatabaseWrapper.cpp:394] Version of the Orthanc database: 6

W0329 09:58:37.682034 HttpClient.cpp:739] No certificates are provided to validate peers, set "HttpsCACertificates" if you need to do HTTPS requests

I0329 09:58:37.682034 HttpClient.cpp:152] Setting the default timeout for HTTP client connections: 10 seconds

I0329 09:58:37.682034 HttpClient.cpp:136] Setting the default proxy for HTTP client connections:

I0329 09:58:37.682034 DicomUserConnection.cpp:1346] Default timeout for DICOM connections if Orthanc acts as SCU (client): 10 seconds (0 = no timeout)

I0329 09:58:37.682034 ServerIndex.cpp:481] Starting the database flushing thread (sleep = 10)

I0329 09:58:37.683034 ServerIndex.cpp:2069] Starting the monitor for stable resources (stable age = 60)

I0329 09:58:37.683034 LuaJobManager.cpp:76] Lua: DICOM associations will be closed after 0 seconds of inactivity

I0329 09:58:37.683034 LuaScripting.cpp:616] Initializing Lua for the event handler

W0329 09:58:37.683034 LuaContext.cpp:103] Lua says: Lua toolbox installed

I0329 09:58:37.683034 LuaJobManager.cpp:76] Lua: DICOM associations will be closed after 0 seconds of inactivity

I0329 09:58:37.683034 LuaScripting.cpp:616] Initializing Lua for the event handler

W0329 09:58:37.683034 LuaContext.cpp:103] Lua says: Lua toolbox installed

W0329 09:58:37.683034 ServerContext.cpp:316] Disk compression is disabled

I0329 09:58:37.683034 ServerContext.cpp:676] Storing MD5 for attachments: yes

W0329 09:58:37.683034 ServerIndex.cpp:1613] No limit on the number of stored patients

W0329 09:58:37.683034 ServerIndex.cpp:1634] At most 1MB will be used for the storage area

I0329 09:58:37.684034 FilesystemStorage.cpp:229] Deleting attachment "f80be337-1772-4c24-ac8b-6cfe17a0b31e" of type 1

I0329 09:58:37.692034 FilesystemStorage.cpp:229] Deleting attachment "d6139ac9-d52f-4f82-bdd8-321e2818a0e4" of type 2

W0329 09:58:37.693034 ServerContext.cpp:168] Reloading the jobs from the last execution of Orthanc

I0329 09:58:37.693034 JobsEngine.cpp:136] Worker thread 0 has started

I0329 09:58:37.693034 JobsEngine.cpp:136] Worker thread 1 has started

I0329 09:58:37.693034 JobsEngine.cpp:136] Worker thread 2 has started

I0329 09:58:37.694034 JobsEngine.cpp:136] Worker thread 4 has started

I0329 09:58:37.694034 JobsEngine.cpp:136] Worker thread 5 has started

I0329 09:58:37.694034 JobsEngine.cpp:136] Worker thread 3 has started

I0329 09:58:37.694034 JobsEngine.cpp:136] Worker thread 6 has started

W0329 09:58:37.694034 JobsEngine.cpp:283] The jobs engine has started with 8 threads

I0329 09:58:37.694034 JobsEngine.cpp:136] Worker thread 7 has started

I0329 09:58:37.694034 DicomServer.cpp:125] Setting timeout for DICOM connections if Orthanc acts as SCP (server): 60 seconds (0 = no timeout)

W0329 09:58:37.696034 main.cpp:932] DICOM server listening with AET TRANSEPPACS-A on port: 4242

I0329 09:58:37.696034 HttpServer.cpp:967] This Orthanc server uses CivetWeb as its embedded HTTP server

I0329 09:58:37.696034 HttpServer.cpp:1206] The embedded HTTP server will use 50 threads

I0329 09:58:37.696034 DicomServer.cpp:62] DICOM server started

I0329 09:58:37.697034 HttpServer.cpp:1122] HTTP keep alive is disabled

W0329 09:58:37.697034 HttpServer.cpp:1155] HTTP compression is enabled

I0329 09:58:37.697034 HttpServer.cpp:1214] TCP_NODELAY for the HTTP sockets is set to true

I0329 09:58:37.697034 HttpServer.cpp:999] Starting embedded Web server using Civetweb

W0329 09:58:37.700034 HttpServer.cpp:1062] HTTP server listening on port: 8042 (HTTPS encryption is disabled, remote access is allowed)

W0329 09:58:37.700034 main.cpp:712] Orthanc has started

I0329 09:58:37.700034 LuaScripting.cpp:673] Starting the Lua engine

I0329 09:58:43.305034 HttpServer.cpp:788] POST /instances

I0329 09:58:43.305034 OrthancRestApi.cpp:118] Receiving a DICOM file of 52528926 bytes through HTTP

I0329 09:58:43.477034 FilesystemStorage.cpp:118] Creating attachment "4bfd3d24-29f2-49bf-b6b7-34f4c9db67e7" of "DICOM" type (size: 51MB)

I0329 09:58:43.555034 FilesystemStorage.cpp:118] Creating attachment "176c6eb3-fcca-491f-a035-d5c1f4387773" of "JSON summary of DICOM" type (size: 1MB)

I0329 09:58:43.569034 ServerContext.cpp:417] New instance stored

I0329 10:00:20.200034 LuaJobManager.cpp:106] Awaking trailing sleep

I0329 10:00:20.200034 LuaScripting.cpp:697] Stopping the Lua engine

I0329 10:00:20.300034 LuaScripting.cpp:699] The Lua engine has stopped

W0329 10:00:20.300034 main.cpp:774] Orthanc is stopping

^C


Bryan Dearlove

unread,
Mar 29, 2019, 2:24:01 PM3/29/19
to Orthanc Users
he storage limit is what storage space Orthanc will use, it will not disallow storage if that limit is hit, but will purge older studies to get back to that limit. 

Are the files still stored in Orthanc now if you check? 

Jonathan salas

unread,
Mar 29, 2019, 3:00:48 PM3/29/19
to Orthanc Users
After restarting the service I see that the file was indeed deleted during startup (see logs). What would happen if instead we hit the storage limit for the disk? Is there any way to have a study be rejected instead of purged? It seems dangerous to have a feature that results in sneaky deletion of data.

Which brings up another question, where does Orthanc delete to?

W0329 14:56:46.348681 main.cpp:1436] Orthanc version: 1.5.6

W0329
14:56:46.351681 OrthancConfiguration.cpp:61] Reading the configuration from: "orthanc.json"

I0329
14:56:46.363681 Toolbox.cpp:1370] Using locale: "" for case-insensitive comparison of strings

I0329
14:56:46.363681 Enumerations.cpp:2217] Default encoding for DICOM was changed to: Latin1

I0329
14:56:46.364681 FromDcmtkBridge.cpp:233] Using DCTMK version: 364

I0329
14:56:46.364681 FromDcmtkBridge.cpp:241] Loading the embedded dictionaries

I0329
14:56:46.402681 FromDcmtkBridge.cpp:253] Loading the embedded dictionary of private tags

I0329
14:56:46.421681 FromDcmtkBridge.cpp:2175] Registering JPEG Lossless codecs in DCMTK

I0329
14:56:46.421681 FromDcmtkBridge.cpp:2180] Registering JPEG codecs in DCMTK

W0329
14:56:46.429681 main.cpp:700] Loading plugin(s) from: ../Plugins/

E0329
14:56:46.429681 PluginsManager.cpp:242] Inexistent path to plugins: ../Plugins/

W0329
14:56:46.429681 OrthancInitialization.cpp:301] SQLite index directory: "C:\PACS Testing/Disk Quota testing/Quota test storage"

W0329
14:56:46.437681 OrthancInitialization.cpp:376] Storage directory: "C:\PACS Testing/Disk Quota testing/Quota test storage"

I0329
14:56:46.446681 SQLiteDatabaseWrapper.cpp:394] Version of the Orthanc database: 6

W0329
14:56:46.447681 HttpClient.cpp:739] No certificates are provided to validate peers, set "HttpsCACertificates" if you need to do HTTPS requests

I0329
14:56:46.447681 HttpClient.cpp:152] Setting the default timeout for HTTP client connections: 10 seconds

I0329
14:56:46.447681 HttpClient.cpp:136] Setting the default proxy for HTTP client connections:

I0329
14:56:46.447681 DicomUserConnection.cpp:1346] Default timeout for DICOM connections if Orthanc acts as SCU (client): 10 seconds (0 = no timeout)

I0329
14:56:46.447681 ServerIndex.cpp:481] Starting the database flushing thread (sleep = 10)

I0329
14:56:46.447681 ServerIndex.cpp:2069] Starting the monitor for stable resources (stable age = 60)

I0329
14:56:46.447681 LuaJobManager.cpp:76] Lua: DICOM associations will be closed after 0 seconds of inactivity

I0329
14:56:46.447681 LuaScripting.cpp:616] Initializing Lua for the event handler

W0329
14:56:46.448681 LuaContext.cpp:103] Lua says: Lua toolbox installed

I0329
14:56:46.448681 LuaJobManager.cpp:76] Lua: DICOM associations will be closed after 0 seconds of inactivity

I0329
14:56:46.448681 LuaScripting.cpp:616] Initializing Lua for the event handler

W0329
14:56:46.448681 LuaContext.cpp:103] Lua says: Lua toolbox installed

W0329
14:56:46.448681 ServerContext.cpp:316] Disk compression is disabled

I0329
14:56:46.448681 ServerContext.cpp:676] Storing MD5 for attachments: yes

W0329
14:56:46.448681 ServerIndex.cpp:1613] No limit on the number of stored patients

W0329
14:56:46.448681 ServerIndex.cpp:1634] At most 1MB will be used for the storage area

I0329
14:56:46.449681 FilesystemStorage.cpp:229] Deleting attachment "4bfd3d24-29f2-49bf-b6b7-34f4c9db67e7" of type 1

I0329
14:56:46.452681 FilesystemStorage.cpp:229] Deleting attachment "176c6eb3-fcca-491f-a035-d5c1f4387773" of type 2

W0329
14:56:46.453681 ServerContext.cpp:168] Reloading the jobs from the last execution of Orthanc

I0329
14:56:46.453681 JobsEngine.cpp:136] Worker thread 0 has started

I0329
14:56:46.453681 JobsEngine.cpp:136] Worker thread 1 has started

I0329
14:56:46.453681 JobsEngine.cpp:136] Worker thread 2 has started

I0329
14:56:46.453681 JobsEngine.cpp:136] Worker thread 3 has started

I0329
14:56:46.454681 JobsEngine.cpp:136] Worker thread 4 has started

I0329
14:56:46.454681 JobsEngine.cpp:136] Worker thread 5 has started

W0329
14:56:46.454681 JobsEngine.cpp:283] The jobs engine has started with 8 threads

I0329
14:56:46.454681 JobsEngine.cpp:136] Worker thread 6 has started

I0329
14:56:46.454681 DicomServer.cpp:125] Setting timeout for DICOM connections if Orthanc acts as SCP (server): 60 seconds (0 = no timeout)

I0329
14:56:46.454681 JobsEngine.cpp:136] Worker thread 7 has started

W0329
14:56:46.455681 main.cpp:932] DICOM server listening with AET TRANSEPPACS-A on port: 4242

I0329
14:56:46.455681 HttpServer.cpp:967] This Orthanc server uses CivetWeb as its embedded HTTP server

I0329
14:56:46.455681 HttpServer.cpp:1206] The embedded HTTP server will use 50 threads

I0329
14:56:46.455681 HttpServer.cpp:1122] HTTP keep alive is disabled

W0329
14:56:46.455681 HttpServer.cpp:1155] HTTP compression is enabled

I0329
14:56:46.455681 HttpServer.cpp:1214] TCP_NODELAY for the HTTP sockets is set to true

I0329
14:56:46.455681 HttpServer.cpp:999] Starting embedded Web server using Civetweb

I0329
14:56:46.455681 DicomServer.cpp:62] DICOM server started

W0329
14:56:46.459681 HttpServer.cpp:1062] HTTP server listening on port: 8042 (HTTPS encryption is disabled, remote access is allowed)

W0329
14:56:46.459681 main.cpp:712] Orthanc has started

I0329
14:56:46.459681 LuaScripting.cpp:673] Starting the Lua engine



Jonathan salas

unread,
Mar 29, 2019, 3:01:25 PM3/29/19
to Orthanc Users
Sorry the log got cut off:

Jonathan salas

unread,
Mar 29, 2019, 3:02:16 PM3/29/19
to Orthanc Users
Cut off again:
limit on the number of stored patients

W0329
14:56<span style="c

Bryan Dearlove

unread,
Mar 29, 2019, 3:19:56 PM3/29/19
to Orthanc Users
I wouldn't call it sneaky as it is configurable, disabled by default, and documented. 
No idea if it runs out of space, I would assume with windows it would probably not accept anymore and/or service would fail. 
Deleted files are not sent to recycle bin but purged. 
Reply all
Reply to author
Forward
0 new messages