ITQuants blog

Author: Created: 2/17/2012 1:03 PM RssIcon
My personal blog on ITQuants
By Philippe Bonneau on 3/6/2013 4:02 PM

Even if the AddClauseOfThisType and SetNthclauseOfThisType exist on the CSRInstrument class, these methods work fine an a CSROption but do nothing on a CSRFuture, at least on versions < Risque 7.1. Thus, the only way to save them is to insert them directly into the database using the CSRSqlQuery class. To prevent some problems, the right way to implement it is the following one:

By Philippe Bonneau on 3/5/2013 12:16 PM

Sometimes, we need to save informations ourselves in some Oracle table without using the mapping between some CSREdit control and some field in the Oracle TITRES table. Sadly, on Sophis Risque, and despite several requests I made, there is no specific callback to implement for the Oracle rollback or commit. Thus, the only way to implement the save of additional informations, and recommended by Sophis, is the following one:

By Philippe Bonneau on 2/14/2013 5:26 PM

When developing an executable, there are several solutions to follow the memory consumption on a process. A third party performance monitor could be used in order to store the information and follow the memory growth on the time. I know some like Sysload, provided by Orsyp.

Another solution is to dump the memory used at different steps of the process in some log files and using this log files to make some statistics.

By Philippe Bonneau on 1/30/2013 7:57 PM
I forgot to give the code used in the precedent webservice sample (Calling a secured webservice in Sophis Risque). These lines make the conversion and release the memory:
By Philippe Bonneau on 1/17/2013 3:02 PM

In some cases, it is not possible to add very easily unicity check using a key on an index. For example, when conditions have to be used and that the unicity concerns only some records and not all.

By Philippe Bonneau on 1/10/2013 4:48 PM

It's one of my best usual case: people are coming to me to see what happened when some server process on production is frozen. Of course, even if logs are written and dumped somewhere, in most cases, they are not enough to detect what happens really.

The same scenario occurs when an access violation is followed by a crash of the process, when we need a post-mortem analysis.

Everybody could tell me that we just have to write such a treatment in C# or Java to get the call stack at this moment, but the subject of this post is not what development language to use but what to do when something like that occurs on a production server.

By Philippe Bonneau on 1/7/2013 6:26 PM

An easy way to resolve it is to use tis to increase the maximum heap size by using JVM options -Xmx512M. This will immediately solve your OutOfMemoryError.

For example, using the following command with the XSLT processor (Saxon Java):

java -Xms1024m -Xmx1024m -jar saxon9he.jar -s:source2.xml -xsl:query.xsl -o:ids2.txt


By Philippe Bonneau on 1/7/2013 3:16 PM

Intel Inspector is a C++ development tool that can be used to detect memory leaks and corruption.

Using this tool and when trying to detect memory leaks in our library, which uses the Misys Sophis toolkit, a lot of memory leaks are found, due to the fact that memory cache used by Sophis or our toolkit library are not correctly released: about 4000 are displayed after analysis. Using existing filters provided by the tool is not sufficient in order to detect which are relevant or not.

The subject of this post is then to provide methods which permit to filter memory leaks which are not due to a cache or static data allocated in the loaded dll's.

By Philippe Bonneau on 11/30/2012 2:37 PM

On the server side, several types of server, agreed in most cases by the Corporate architect, are used:

 - IIS + .Net
 - Websphere + Java

 - ....

 Depending of the type of webservers, the implementation in Sophis Risque, in C++, can be done easily or not. This post will describe the development done to access a secured webservice deployed on a Websphere webservice.

By Philippe Bonneau on 11/9/2012 5:55 PM

In most cases, the error made by the developer when changing a lot of data on a table is to forget the (re)generation of the index. Such an error will degrade the performance of all queries made during the day with indexes generated automatically during the night.

Search blog