Qorus Integration Engine®
4.0.3.p2_git
|
Latest version: Qorus 4.0.3.p2
This is a major release of Qorus with the following major changes:
qrest put workflows/MY-WORKFLOW?action=setRemote remote=0
qrest put services/my-service?action=setRemote remote=0
qrest put jobs/my-job?action=setRemote remote=0
remote
option. This behavior can be changed by setting the qorus-client.remote option in the System Options File"cluster"
subdirectory of the log directorystdout
and stderr
logs from all cluster processes are also redirected to their cluster log files (this includes qorus which no longer prints any output to stdout
or stderr
while running)"remote"
attribute to define if a job should run in a remote qjob process or not"remote"
attribute to define if a service should run in a remote qsvc process or not"remote"
attribute to define if a workflow should run in a remote qwf process or notCLASS_DEPENDENCIES
CLUSTER_PROCESSES
CONNECTION_TYPES
GLOBAL_CONFIG_ITEMS
JOB_CONFIG_ITEMS
JOB_GLOBAL_CONFIG_ITEMS
JOB_INSTANCE_STATS
JOB_INSTANCE_STATS_STAGE
SERVICE_AUTH_LABELS
SERVICE_CONFIG_ITEMS
SERVICE_GLOBAL_CONFIG_ITEMS
STEP_CONFIG_ITEMS
WORKFLOW_GLOBAL_CONFIG_ITEMS
retry_flag
attribute has been deprecated in favor of the status
option, which can be set to OMQ::StatError (former retry_flag
= False), OMQ::StatRetry (former retry_flag
= True) and (new in this version) OMQ::StatCanceled status
= OMQ::StatCanceled is raised from within a workflow then the workflow will end in OMQ::StatCanceled status instead of OMQ::StatError.retry_flag
is still accepted for backwards compatibility%module-cmd(jni) set-compat-types false
in Qore code to reenable full automatic type conversions; see JNI Module Compatibility Options for more information.info-snapshot
option has been removed as workflow order and job result information is always kept up to date in Qorus and the snapshotting mechanism is no longer necessarydbparams-file
option has been removed. DB connections are stored in the system DB.remoteconnections-file
option has been removed. Qorus remote connections are stored in the system DB.dbparams
file when Qorus 4.0 is installed over an existing Qorus installation.403 Forbidden
responses for authentication and related errors where appropriateinfo-snapshot
mechanism is now fully integrated into the Qorus process and it does not need periodical refreshing. The option is obsolete and has been removed.status
option instead of a retry_flag
option (retry_flag
is still accepted for backwards compatibility, but it is deprecated; see Important Upgrade and Backwards Compatibility Information)
qore
binary delivered with TAR packages no longer sets the module path automatically; to ensure correct operations after upgrading with a TAR package, make sure and set your QORE_MODULE_DIR
environment variable accordingly; see Configure Environment Variables for more information
Issue ID | Severity | Description |
2926 | Normal | fixed bugs in qctl: Qorus Cluster Control Process killing and removing processes with the qctl killall command |
2920 | Normal | fixed a bug in creating workflow orders with multiple unique keys |
2811 | Normal | fixed a bug in oload where the active attribute of jobs was not updated when existing jobs were reloaded |
2649 | Normal | fixed a bug in the REST API where it was not possible to create a workflow-specific error without first creating a global error with the same name |
2638 | Normal | fixed a bug in the REST API where arguments given in the URI path were sometimes ignored |
2540 | Normal | fixed a bug where session recovery could deadlock if the connection to the server could not be established and did not time out |
2500 | Normal | the active key of the PUT /api/v3/jobs/{id_or_name}?action=setActive response now reflects the actual job active state |
2448 | Normal | fixed a bug clearing user storage with the REST API |
2434 | Normal | fixed an error in the wf_get_step_info() function documentation regarding the desc key which was previously incorrectly documented to be the description key |
2305 | Normal | workflow errors and warnings with a non-string info argument no longer result in an internal error being raised |
2300 | Normal | fixed a bug where the the error_count and warning_count values were missing on systems using a PostgreSQL DB for the system schema |
2225 | Normal | fixed a bug where the onetimeinit function was executed twice for synchronous workflow orders |
This is a bugfix release of Qorus and also introduces APIs for writing interface tests in Java.
To run tests, the qorus-client.allow-test-execution option must be set to true
in the System Options File or tests based on the QorusInterfaceTest module will no longer run; ex:
echo qorus-client.allow-test-execution: true >> $OMQ_DIR/etc/options
"zeyosrest"
and "zeyosrests"
)Issue ID | Severity | Description |
2975 | Normal | fixed a race condition in qsvc process recovery with active HTTP handlers where HTTP requests received while the processes was recovering could result in spurious errors |
2968 | Normal | fixed a bug removing all roles from a Qorus user |
2962 | Normal | fixed a bug where global configuration items were not deleted by oload when there were no more references to it |
2959 | Normal | fixed a bug rotating log files |
2954 | Normal | fixed a bug in the UI where global config items were displayed for interfaces that do not access them |
2948 | Normal | fixed a bug where the UI would not allow BLOCKED orders to be canceled and for ::StatCanceledCANCELED orders to be updated to BLOCKED |
2947 | Normal | fixed a bug displaying workflows in the UI loaded at runtime |
2946 | Normal | fixed a bug where external RBAC auth modules that required QorusClientCore could not be loaded |
2941 | Normal | fixed a bug handling the CANCELED status for errors |
2940 | Normal | fixed a bug where workflow action synchronization when resetting new workflows that were not previously cached was missing |
2937 | Normal | fixed a bug where workflow status change events were not emitted for all order changes |
2935 | Normal | fixed a bug in the UI handling sensitive data updates |
2929 | Normal | added APIs to allow system loggers to be modified |
2927 | Normal | fixed a bug where oload did not refresh the map when global config items were updated |
2926 | Normal | fixed a bug in qctl killall where the the operation would fail if there was a program starting |
2920 | Normal | fixed bugs in workflow order creation APIs when multiple unique keys were passed |
2919 | Normal | fixed a bug in the UI where workflow actions were hidden when the UI sidebar was expanded |
2918 | Normal | fixed qdsp process termination recoveries in client processes |
2917 | Normal | fixed bugs in the UI handling service breadcrumbs |
2915 | Normal | fixed a bug where the workflow order list page showed incorrect workflow execution instance counts |
2913 | Normal | fixed issues related to quick search boxes in the UI |
2906 | Normal | fixed a bug in the UI where the config tab was not available in the workflow order page |
2905 | Normal | fixed setting config items values with an empty string to be handled as no value |
2903 | Normal | fixed a server-side type error in workflow order step information in a REST API that would cause the UI to go blank after making a workflow order retry in some cases |
2899 | Normal | fixed service authentication label support and documentation |
2886 | Normal | fixed a bug with the remote deployment APIs deploying Java-based interfaces |
2878 | Normal | fixed a bug where interfaces were deleted from the DB even if the network request to disable the interface first is rejected due to authorization errors |
2877 | Normal | added new APIs and UI elements to make it easier to update loggers and appenders |
2873 | Normal | fixed a bug where logger appender updated would not take effect before the interface was reset |
2869 | Normal | fixed a race condition in qorus-core starting qorus |
2866 | Normal | fixed a bug sending websocket events for system logs |
2859 | Normal | fixed a bug changing the log level of loggers with the REST API |
2858 | Normal | fixed a bug where API commands to stop workflows would appear to fail with a type error when the action actually succeeded internally |
2836 | Normal | fixed a bug in cluster restarts with qorus-core failures |
2790 | Normal | fixed a bug where loopback connections were being returned in the response to GET /api/v3/system/health in the remote key |
2758 | Normal | fixed a bug when there is no 'next run' value displayed in the admin UI |
2617 | Normal | added a Java API for testing |
2302 | Normal | fixed a bug where the cluster would be left in an inconsistent and non-responsive state if the qorus-core process terminated prematurely when shutting down the cluster |
This is a bugfix release; for details, see the issues addressed below.
Issue ID | Severity | Description |
3008 | Normal | fixed a bug in oload deleting workflow order instances with sensitive data |
3004 | Normal | fixed a bug in oload where global configuration items won't be deleted from the database (the workflow_global_config_items table) if they've been removed from a step previously loaded to Qorus |
3002 | Normal | added the DefaultQorusRBACAuthenticator and DefaultQorusRBACBasicAuthenticator classes to the service API; added docs |
3001 | Normal | fixed logging issues where logging was not enabled until later in process initialization time and log file name patterns were not respected |
3000 | Normal | fixed a bug in ServiceApi::registerSoapListeners() in qsvc processes |
2999 | Critical | worked around a bug in libzmq where socket descriptors would leak at runtime causing Qorus to stop responding under heavy load and resulting in data corruption in the system DB schema |
2997 | Normal | fixed a bug where log file names did not reflect the correct instance name |
2994 | Major | fixed a bug where interface logging did not respect the log level in all cases |
2988 | Normal | fixed a bug where the UI would not display boolean values in system options correctly |
2987 | Critical | fixed a bug where qdsp processes could hang for long periods of time due to an error where potentially expensive I/O operations were performed while holding a critical lock |
2981 | Normal | fixed a bug where updating a global config item would cause a new entry to appear in the UI |
2980 | Major | fixed a bug where delays in connection monitoring actions caused excessive contention for updating connections |
2541 | Normal | fixed a bug in oload to disallow creating objects with non-alphanumeric characters in their names (dashes and underscores are allowed); also fixed in the REST API |
This is a bugfix release that also introduces changes in new features; for details, see the issues addressed below.
"awsrests"
)strictly_local
flag allows to create config item value only on the level it was defined; see
"context"
: any string value assigned to this key will be used as the argument to UserApi::expandTemplatedValue(); the return value of this method call will be used as the value of the field"template"
: if assigned to True; the value of the field will be passed as the sole argument to UserApi::expandTemplatedValue(); the return value of this method call will be used as the value of the fieldDUPLICATE-ORDER-KEY
exceptions now include a hash arg
key with a workflow_instance_ids
key giving a list of all conflicting workflow order instance IDSIssue ID | Severity | Description |
3262 | High | fixed a bug where no WebSocket events were emitted for order data updates during workflow execution |
3257 | Normal | fixed a bug where oload does not respect requires tag for classes |
3255 | Normal | fixed a bug where services could not bind to all interfaces with bind address 0 |
3253 | High | fixed a bug in ServiceApi::getCallContext() where the HTTP call context was not available |
3249 | High | fixed a bug where workflow orders and jobs could remain unrecovered due to errors in remote session recovery with qwf and qjob processes |
3247 | Normal | fixed a bug where oload would not allow services to inherit all their methods from the parent class |
3245 | High | fixed a deadlock that could occur in qdsp processes when a datasource is not available |
3242 | High | fixed a deadlock that could occur when changing the remote status for interfaces |
3238 | High | fixed a deadlock when alerts were raised by remote processes and alert auditing was enabled |
3236 | High | fixed a bug in oload where the remote flag was incorrectly updated for workflows that had already been updated with the API / UI |
3233 | Normal | fixed a bug where it is not possible to change config item in a base class that is inherited by multiple interfaces |
3229 | High | fixed a race condition that led to a deadlock handling unexpected process terminations |
3228 | High | fixed a bug in the system.sqlutil service where dependencies were created from datasource to the system service for certain methods, causing it to be spuriously unloaded when the user datasource connections went down |
3218 | High | calls to service methods between remote processes results did not preserve complex types in the arguments |
3216 | Normal | fixed a bug where remote REST handlers returning hashdecls declared only the interface would cause an exception to be thrown in qorus-core |
3209 | High | fixed a bug in running detach logic in workflows with the remote flag set when the workflow process is not currently running |
3206 | High | fixed a bug in a Qorus cluster API that could cause spurious errors updating process info |
3205 | High | fixed a race condition in terminating internal cluster client objects that could cause qorus-core to enter an infinite loop in a critical I/O thread and stop processing |
3203 | Normal | fixed a bug where qorus-master logs were not available for streaming |
3198 | High | fixed a bug where mappers were non-functional in qsvc and qjob processes |
3197 | Normal | fixed a bug where the qorus master process logs were not accessible from the REST API nor the system UI |
3192 | High | fixed a bug in the system.info service that caused workflow key search APIs to fail |
3190 | Normal | fixed a bug in PUT /api/v3/remote/user/{name} where connection options could not be removed entirely |
3172 | Normal | fixed a cosmetic error in the response for POST /api/latest/roles/{role}?action=clone |
3171 | Normal | fixed a cosmetic error starting Qorus without a qorus.network-key option set |
3170 | Normal | fixed a bug in mappers causing UI to crash when an input option is set to NOTHING |
3162 | Normal | fixed a bug where the remote Qorus process got frozen when the debugger would request the source code of the interface |
3161 | Normal | fixed a bug where services and jobs could not be retrieved using their version strings appended to the name separated by a colon (":" ) |
3160 | High | fixed a bug where Qorus would report a local Program object for workflows after changing the remote status to True |
3159 | High | fixed a bug where Qorus could use 100% CPU usage in an idle instance over time due to an error handling event processing the schema snapshot thread |
3158 | High | fixed a bug where Qorus would accept invalid encodings for appenders which could later leave the system in a state where it would not start |
3157 | High | fixed a bug where Qorus would not accept errors with dots in the error name (as required with java exception class names) |
3152 | Normal | UI: fixed a bug refreshing the Qorus UI after a server disconnection |
3150 | Normal | fixed bugs setting logger parameters on interfaces with custom loggers |
3148 | High | fixed a race condition in a REST API with remote service initialization that could cause a server error and a UI crash |
3145 | High | added REST-CONNECTION-ERROR as a registered technical error |
3141 | Normal | a system event is raised when workflow order keys are updated |
3137 | High | fixed a race condition where a null workflowstatus could be returned with the parent order in the GET /api/latest/orders/{id} response |
3136 | Normal | fixed bugs in logging functionality in HTTP handlers in Qorus services |
3134 | Normal | UI: fixed a bug where datasource connections would not appear in the list when created or get removed when deleted |
3132 | Normal | added default values for new loggers and appenders in the system UI |
3087 | Normal | Manually disabled connection raises a 'down' alert |
3085 | Normal | configuration items rework |
3053 | Normal | fixed a race condition flushing workflows with cached orders with note operations in progress |
3052 | Normal | fixed a bug where it was not possible to bind more HTTP handlers to same port in a service |
3044 | Normal | fixed a bug in oload with class-based job APIs taking varargs |
3025 | Normal | fixed a cosmetic error in the Qorus client library if no system schema option value is set |
3022 | Normal | fixed broken handling of HTTP authentication requests of Qorus services |
2993 | Normal | removed old log filenames templates from options and updated documentation with a new one |
This is a bugfix release; for details, see the issues addressed below.
Qorus 4.0.3.p1 supports TLS v1.3 connections for platforms using OpenSSL 1.1.1+ such as Red Hat Enterprise Linux / CentOS / Oracle Linux 8+.
Issue ID | Severity | Description |
3318 | High | fixed an authorization error calling internal service methods where lower privileges could be applied to internal service method calls in some cases |
3317 | High | fixed a bug running non-synchronous local workflows when started from a synchronous remote workflow |
3308 | High | fixed a bug where remote transactions with streams failed to work properly due to an error recognizing the transaction status in the I/O thread |
3307 | High | fixed bugs where log messages for stream actions would sometimes appear in the qorus-core logfile instead of the interface log file |
3302 | High | fixed a deadlock in interface start/stop/enable/disable actions related to incorrect internal serializations |
3295 | High | fixed a bug where oload: Data Loading Tool and Schema Manager did not set the classpath correctly for Java classes in some situations, leading to validation errors with an otherwise correct configuration |
3294 | Normal | fixed a bug where Qore and Java classes could not mix with requires depedencies |
3290 | Normal | added missing nofile and nproc keys to the system REST API response to make it easier to debug resource limit issues on remote servers |
This is a bugfix release; for details, see the issues addressed below.
Qorus 4.0.3.p2 adds support for SAP REST API connections:
Issue ID | Severity | Description |
3373 | Normal | fixed bugs handling qsvc crashes in service initialization |
3371 | Normal | fixed bugs recovering qsvc and qjob processes in qorus-core restarts |
3370 | Normal | fixed a bug where calling APIs with explicit authentication would cause the authentication to remain for future API calls |
3359 | Normal | fixed a bug supporting MySQL/MariaDB as the system schema |
3350 | Normal | fixed a bug where the RBAC cache would get corrupted when an interface group would get deleted with roles that were assigned to that group |
3346 | High | fixed deadlock / 100% CPU bug starting the Qorus cluster with qorus |
3345 | High | fixed a bug HTTP services could have their URLs rewritten incorrectly due to an incorrect regex stripping the root path |
3337 | High | fixed a bug where invalid workflows with tags would result in an inconsistent cache that could only be fixed by deleting the workflow from the DB |
3323 | High | fixed a bug in the UI where drop down menus would disappear seemingly randomly when WebSocket messages would arrive |
3320 | Normal | fixed a bug where a lingering listener was left when error happened during SOAP listener registration, also correctly handling sharing of SOAP listeners now |
3319 | Normal | fixed a bug where service log messages could appear in workflow log files when both interfaces are run in qorus-core |