Qorus Integration Engine®  4.0.3.p2_git
Qorus 2.5 Series

back to Release Notes

Qorus 2.5.1.p14

Issues Fixed

Bug ID Severity Description Change
248 CRITICAL memory leak in oracle driver - leaking date descriptors with SQLStatement::bind() fixed in oracle driver

Qorus 2.5.1.p13

Issues Fixed

Bug ID Severity Description Change
247 MAJOR Oracle driver should not trim whitespace from CHAR values fixed in oracle driver

Qorus 2.5.1.p12

Issues Fixed

Bug ID Severity Description Change
246 MAJOR order keys not reported when workflow data is cached - only when retrieved from the DB fixed in qorus

Qorus 2.5.1.p10

Issues Fixed

Bug ID Severity Description Change
245 MAJOR HTTPClient class does not use the CONNECT method when connecting to a HTTPS server through a proxy fixed in qore lib
244 MAJOR oracle driver does not support fetching or binding ROWID column values fixed in oracle driver
243 NORMAL bug in qore allows expressions with side effects and requiring the execution of uncommitted code to be assigned to constants fixed in qore lib

Qorus 2.5.1.p9

Issues Fixed

Bug ID Severity Description Change
242 CRITICAL bug in Oracle driver; buffer allocated for NUMBER columns is too small fixed in oracle driver

Qorus 2.5.1.p8

Issues Fixed

Bug ID Severity Description Change
241 CRITICAL a bug in setting the parent workflow information when caching workflow order data prohibits subworkflow events from being delivered to the parent workflow fixed in qorus
240 NORMAL missing error handling in setting a workflow order data instance to IN-PROGRESS causes a mess in the workflow logs fixed in qorus

Qorus 2.5.1.p7

Issues Fixed

Bug ID Severity Description Change
239 MAJOR Qore's Socket class does not handle descriptor 0 properly fixed in qore lib
238 MINOR YamlRpcClient is making an extraneous HTTP connection every time a request is made instead of reusing the connection fixed in qorus client and server
237 BLOCKING error in datasource transaction lock handling with autocommit on fixed in qore lib
236 NORMAL logging of loading library objects in services is broken fixed in qorus
235 MAJOR code object load ordering issue: parse exception with undeclared namespace because it's defined in other code object schema update and qorus fix
234 CRITICAL bug checking the runtime return type could cause a crash fixed in qore lib
233 CRITICAL memory leak in += operator for object += hash and memory error / race condition in handling references to object members fixed in qore lib
232 NORMAL calling skipAsyncStep() while a step is ASYNC-WAITING causes an exception to be thrown (Oracle only) fixed in qorus

Qorus 2.5.1.p6

Issues Fixed

Bug ID Severity Description Change
231 CRITICAL reference/memory leak in thread resource handling with the Datasource class fixed in qore lib
230 CRITICAL bug handling the transaction lock in the Datasource class can allow for multiple transactional statements to be executed in separate threads on the same connection even though only one of the threads should hold the transaction lock fixed in qore lib
229 MAJOR if a workflow declares an "OMQ" namespace, then nothing in the system "OMQ" namespace is available fixed in qore lib
228 NORMAL system service method info.getWFIAllInfo() returns NOTHING for fields in the parent workflow when called immediately after a retry of a subworkflow fixed in qorus

Qorus 2.5.1.p5

Issues Fixed

Bug ID Severity Description Change
227 MAJOR splice operator ignores integer arguments for the new value fixed in qore lib
226 NORMAL bugs in system.info.getLibrary(), getWorkflowInstanceListFromKeyValue(), getClass(), getClassFromName(), getConstant(), getConstantFromName() methods causes calls to fail fixed in info service
225 NORMAL calling HTTPClient::setProxyURL("") causes an instant deadlock fixed in qore lib
224 MAJOR call reference call return value type info set incorrectly to "callref" when it should be "any" fixed in qore lib
223 MINOR HTTP server started even if HTTPS server given and no HTTP setting given in options file fixed in qorus
222 NORMAL not possible to update user or profile roles with user-tool fixed in user-tool
221 MINOR DB exception in RBAC methods could leave internal RBAC data structures in an inconsistent state fixed in qorus
220 NORMAL schema-tool -C does not support recovering failed schema creation fixed in schema-tool
219 CRITICAL a lock ordering error could cause a deadlock if an object references a containing global variable from its destructor fixed in qore lib
218 MAJOR bug in oload creating service library objects fixed in oload
217 MAJOR SOAP serialization error when base types are serialized fixed in Qorus client and server
216 CRITICAL too-lax type checking when executing variants resolved at parse time can lead to a crash when a call is made with a runtime type error fixed in qore lib
215 MINOR oview shows invalid data when a non-existent workflow order instance id is given (oracle only) fixed in info service

Qorus 2.5.1.p4

Issues Fixed

Bug ID Severity Description Change
210 NORMAL service method system.info.getOrderInfo() is returning a list instead of a hash fixed in info service
209 MINOR if system option qorus.flush-status is True, the workflow status of a cached workflow can be set in the DB to IN-PROGRESS instead of RETRY fixed in qorus
208 NORMAL Dir::mkdir() is broken fixed in qore lib
207 CRITICAL possible to declare a function/method/closure with a return type and then not have a return statement as the last statement in the block thereby exiting with return value NOTHING, which could cause a crash fixed in qore lib
206 NORMAL qorus client does not allow a UNIX domain socket file to be set for the URL fixed in qorus client
205 NORMAL DatasourcePool::constructor(hash) ignores the max option if present fixed in qore lib
204 NORMAL the Qorus HTTP server does not set the character encoding properly in responses fixed in Qorus HTTP server
203 MINOR service method system.info.getServiceMetadataFromName() is broken on mysql and pgsql fixed in info service
202 MAJOR HTTPS listener does not work properly due to a bug handling timeouts in SSL socket connections in qore fixed in qore lib
201 NORMAL cannot change autostart status for services fixed in Qorus
200 MINOR created and modified columns are returned as strings in the output of the system.queue.getInfo() and getInfoFromQueueKey() methods fixed in queue service
199 MINOR when skipping an async step, if the maximum number of retries has been exceeded, then it will go to ERROR instead of ASYNC-WAITING before going to COMPLETE fixed in Qorus

Qorus 2.5.1.p3

Issues Fixed

Bug ID Severity Description Change
198 CRITICAL qore library does not initialize the time zone correctly on solaris 8 without the TZ env variable fixed in qore lib
197 CRITICAL returning workflow order information when cached fails due to an error in the SegmentManager method fixed in Qorus
196 CRITICAL retries of a segment may skip retry execution of steps with ERROR status fixed in Qorus
195 CRITICAL oracle driver does not read or bind fractional second information correctly fixed in oracle driver
194 CRITICAL oracle driver does not read or bind time zone information correctly resulting in corrupted date/time values for timestamp with time zone and timestamp with local time zone columns fixed in oracle driver
193 MAJOR system.info service processCondition() has a typo for staticdata and dynamicdata field access fixed in info service
192 MAJOR YamlRpcClient is not included in the server code fixed in Qorus
191 MINOR no message is output when the server starts HTTPS listeners fixed in Qorus
190 MAJOR the yaml module deserializes untagged 0 and 0.0 as strings fixed in yaml module
189 CRITICAL if an on_exit, on_error, or on_success statement has an empty body, it will cause a run-time crash fixed in qore lib
187 MINOR qorus will start on earlier schema versions if system_properties.omq.schema-compat matches the internal schema_compat constant fixed in Qorus

Qorus 2.5.1.p2

Issues Fixed

Bug ID Severity Description Change
186 CRITICAL race condition deleting/discarding queue data can cause valid queue data to be lost fixed in Qorus
185 CRITICAL shutting down qorus with running workflows can lead to workflow status corruption fixed in Qorus
184 CRITICAL postgresql only: async queue DB management is faulty fixed in Qorus
183 CRITICAL race condition in workflow resets can cause an exception and deadlock fixed in Qorus
182 MINOR when cache entries are updated and the cache is full, the update is ignored fixed in Qorus
181 CRITICAL deadlock possible in updating queue entries and other operations on the workflow cache fixed in Qorus
180 MINOR updating the system option qorus.detach-delay only takes effect on new orders added to the cache; orders already in the cache use the old value fixed in Qorus
179 MAJOR timed workflow cache releases are very slow when a large number of workflow order instances is cached fixed in Qorus
178 MAJOR race condition in resetting workflows and in timed cache deletions can cause workflow status not to be correctly synchronized to the DB fixed in Qorus
177 MINOR log messages for flushing workflow statuses after all workflow instances are stopped are placed in the system log file fixed in Qorus
176 CRITICAL not all workflow events are read in to the DB if a large number of events are available in the DB fixed in Qorus

Qorus 2.5.1.p1

Issues Fixed

Bug ID Severity Description Change
175 MAJOR recursively updating workflow status from a subworkflow error fails fixed in Qorus
174 MAJOR updating a parent workflow order instance with the child's status can fail due to an SQL bug fixed in Qorus

Qorus 2.5.1

Issues Fixed

Bug ID Severity Description Change
173 MINOR service methods system.info.getWorkflowMetadata*() are broken on oracle fixed in info service
172 MAJOR service method system.info.getTreeWithWorkflowinstance is broken fixed in info service

Qorus 2.5.0.p1

Issues Fixed

Bug ID Severity Description Change
171 MAJOR getStaticData() returns a hash when a single argument is passed fixed in Qorus
170 MAJOR an error in the RBAC constructor causes only the first option given to qorus.rbac-force-user to be respected fixed in Qorus

Qorus 2.5.0

Release Overview

The 2.* series represents a major new release of the Qorus solution, targeted for improved performance, scalability and providing additional facilities for schema and database maintenance. The 2.5.0 is a major release. It is based on the Qore 0.8.0 library, which contains major new features over previous versions of Qore.

Upgrading from pre 2.0.0 involves a major update to the system schema that could break compatibility with any code accessing the Qorus system schema directly; if upgrading from any version prior to 2.0.0, see System Schema Data Model 2.0.0 Changes for more information. The changes in all schema versions from 2.0.0 to this version are minor compared to upgrading from a version prior to 2.0.0.

Note
Before upgrading to version 2.5.0, make sure to make a complete backup of the Qorus system schema, additionally, make sure enough space is available in rollback segments so that the schema migration can complete successfully.

Due to improvements in upgrade support, any previous version of Qorus Integration Engine can be upgraded directly and automatically by this release. When upgrading from any previous version, the system schema is changed, so Qorus must be shut down before upgrading to version 2.5.0.

Note
This release features aggressive workflow status caching enabled by default. In order to emulate the behavior of versions of Qorus prior to 2.0, set the qorus.flush-status system option to True in the options file. For more information, see Aggressive Workflow Status Caching.

New Features

  • new workflow status: BLOCKED (B)
    like CANCELED (X), but is assumed to be a temporary status
    can be set automatically from the attach function by calling the new workflow API setBlocked()
  • new API: omq.system.block-workflow-instance()
  • new semantics for omq.system.cancel-workflow-instance()
    when called with a value that converts to boolean False after the workflow_instanceid, will restore the workflow to its original status before the cancel (only if it's been canceled with version 2.5.0+, so the original status is saved)
  • new API: omq.system.runtime-properties()
    new command-line option for Qorus: -Dkey=arg to set runtime properties
    so instances can be identified with "ps" (for example)
  • new workflow order attributes
    • op_username
    • op_comment
    • custom_status
  • new API: omq.system.set-order-info()
    sets additional order information (op_username and op_comment)
  • new API: omq.system.get-order-info()
    gets additional order information for an existing workflow order data instance if present (op_username and op_comment)
    • new retry_trigger attribute for segment_instance
    • new workflow API functions
      • setBlocked(): sets the workflow order data to BLOCKED (B) when called from the attach function (can only be called from the attach function)
      • setOrderInfo(): allows the user to set op_username and op_comment
      • getOrderInfo(): allows the user to read op_username and op_comment
      • setCustomStatus(): allows the user to set or clear the custom_status field
      • runtimeProperties(): allows runtime properties to be read
      • setRetryDelay(): allows a step about to get an ASYNC-WAITING (A) status to set a custom retry interval based on a fixed time or fixed period of time
    • error definition extended to allow setting a retry-delay property
      this property will give the default retry waiting period for the segment
    • serror() workflow API function updated
      now takes an optional 3rd argument to give the retry delay if the status will be RETRY (R)
    • client library updated to allow use of a proxy to access Qorus
    • new client options in options file
      • proxy-url: allows the user to set a default HTTP proxy to use when communicating with Qorus
      • client-pool-minimum: allows the user to set a default minimum number of DB connections for DatasourcePools created by the client library
      • client-pool-maximum: allows the user to set a default maximum number of DB connections for DatasourcePools created by the client library
    • order info, queue data now stored in YAML instead of XML-RPC format
      • allows all Qore data types (except objects) to be stored with no data loss, including date/time values with time zones and microseconds and relative date/time values (durations)
      • much more compact and readable syntax than XML-RPC
      • old data written in XML-RPC format can be parsed transparently
  • Qorus requires the YAML module to start
  • new API: omq.system.start-workflows()
    allows more than one execution instance of a workflow to be started with a single API call

Overview of Qore 0.8.0 Features

Full qore 0.8.0 release notes here: http://qore.org/release-notes-mainmenu-17/150-qore-080-release-notes

  • optional hard typing, provides more safety when developing more complex solutions in Qore
  • function and method overloading and default argument values
  • improved parser provides more warnings about possibly erroneous code; catches more errors at parse time so they do not become run-time errors
  • time zone support: all absolute date/time values now have a time zone attribute
  • date/time values now support a resolution to the microsecond
  • much improved programming reference documentation; formal descriptions of all parameter types and return types (internally and in the documentation)
  • new functions, methods, classes, operators, constants, warnings, and parse options

System Schema Data Model 2.5.0 Changes

  • new columns
    • order_instance.op_username
    • order_instance.op_comment
    • workflow_instance.workflow_status_orig
    • workflow_instance.custom_status
    • step_instance.custom_status
    • segment_instance.custom_status
    • segment_instance.retry_trigger

The internal API for Oracle and PostgreSQL has been updated to reflect the new schema changes; additionally the Oracle API has been extended and optimized to improve performance and scalability

See also
Qorus 2.0 Series