When you use the OSLC CM REST API in IBM Rational ClearQuest, multiline fields in the REST client are truncated for default installations whenever multiline fields are greater than 2000 characters.
The maximum multiline field length is an adjustable value in OSLC and by default it allows 2000 characters.
If you leave this default value as-is, multiline fields that are greater than 2000 characters are truncated.
Resolving the problem
To resolve the issue:
- Open the following directory on the CM server:
For ClearQuest 8.0.0.x and 8.0.x:
The <CQWebProfile> is the location of the WebSphere profile hosting the CQ Web application.
For example, for a 32-bit machine, the ClearQuest installer creates the WebSphere profile here:
For ClearQuest 7.1.x on 32 bit Windows:
For ClearQuest 7.1.x on 64 bit Windows:
C:\Program Files (x86)\IBM\RationalSDLC\common\CM\profiles\cmprofile\installedApps\
- Open the file
cqrest.properties. The file should contain text similar to following. The max.multiline.text.length is the one we will be editing.
- Change the line as follows.
- Restart the CM server.
- This value determines the size of an internal buffer to store the multiline text data. If the actual data is smaller than this, then the buffer wastes space. If the actual data is larger than this then it is truncated.
- You can change the parameter to any length that suits the size of your multiline field data.
- You can use 0 if you don't want your data be truncated but don't know the maximum length of your multiline fields. The query will fetch the entire multiline text field and the buffers will not have any wasted space. Be careful about using 0:
- From a memory point of view, 0 is more efficient in that it only allocates as much memory as it needs. Ultimately, however, using 0 may cause ClearQuest to consume more memory than if you set a fixed value, because the latter will truncate the multiline text data if it is larger than the maximum multiline size.
- From a performance point of view, setting it to 0 will cause queries with multiline text columns to run slower. Per internal tests with a query that had one multiline text field, there was 10% increase in time to run a query with 100 rows in the result set, a 15% increase in time to run a query with 1000 rows in the result set, and a 25% increase in time to run a query with 8000 rows in the result set.
- Using either 0 or a very large value for this limit may cause ClearQuest to run out of memory. A very large value for this limit will cause out of memory if there are enough rows returned in the result. This is because a buffer of this size is allocated for each multiline text value, even if the actual value is empty. Using 0 for this limit could cause ClearQuest to run out of memory if the total amount of multiline text data for all columns and rows in the result-set is too large to hold in memory, For example, fields such as the Note_Log field in out-of-the-box schemas may contain huge amounts of data. If the result set included the Notes_Log for many defects, it may cause ClearQuest to run out of memory condition.