One of the topics that comes up often when managing Ensemble productions is disk space:

The database (the CACHE.DAT file) grows in a rate that was unexpected; or the Journal files build up at a fast pace; or the database grows continuously though the system has a scheduled purge of the Ensemble runtime data.

It would have been better if these kind of phenomena would have been observed and accounted for yet at the development and testing stage rather than on a live system.

For this purpose I created a basic framework that could aid in this task.

4 7
2 1.3K
Article
· May 16, 2016 11m read
Accelerate Ensemble

Introducing non-persistent messages. eXpert-to-eXpert

Background

InterSystems Ensemble as a tool does a lot for the Developer. One of the nice features is the Message trace utility. It shows a message flow diagram. The diagram shows the progress of the message processing real time. You can get many-many useful information from the production. In any case, someone needs to find a bug in a production implementation, without the Message trace utility it could turn into a real nightmare.

On the other hand, keeping message “traceability” is not for free. A heavy loaded production can very quickly run out of resources just because of the house keeping functions of Ensemble. House keeping functions such as maintaining message header, log entries, message queue generates a significant load on the Caché database used by Ensemble.

This article is about to show how to force Ensemble work more for the everyday life, instead of being prepared for “any-time-debugging”.

This is an eXpert-to-eXpert article. Therefore, I assume the deep understanding of Ensemble.

10 1
1 1.7K
Question
· May 9, 2016
Production Monitor

At the Global Summit several folks had mention that they developed their own production monitor. I am looking to create a monitor similar to eGate that we only display those Services/Processes/Operations that are in trouble, and those Errors that are showing up in the Event Log. Does anyone have any examples of this?

Thanks

Scott Roth

The Ohio State University Wexner Medical Center

0 3
1 582
Question
· May 6, 2016
Load a dll at run time

I am using java gateway imported/proxy classes and JG business service. I need to load a dll at run time.

I use System.loadLibrary/System.load when in java. I’ve tried $ZF(-3,” C:\Windows\System32\pteidlibj.dll”) and $ZF(-4,1,"C:\Windows\System32\pteidlibj.dll") but I’m getting <DYNAMIC LIBRARY LOAD> error.

How can I load a dll at run time using COS?

0 5
0 1.1K
Question
· May 5, 2016
Using Snapshots in BPL

I have a scenario where I am calling a business operation which populates and returns an EnsLib.SQL.Snapshot via dynamic SQL to a Business Process. I then want to iterate over this snapshot and call a RecordMap Operation to write those records to a delimited file.

Is this the correct way to do something like this? If so, does anyone have a sample which illustrates its correct usage?

When the snapshot is returned I save it into a context variable with:

set context.Snapshot=callresponse where the pOutput variable of the operation is set to EnsLib.SQL.Snapshot.

0 1
0 619

Hello, I'm new to Ensemble, and my first task is to become familiar with the Production and create a basic outline of it for the users to view (which servers, where are the input files, where are the output files, how many records...). What are the Production tables? I'd like to start there.

Thanks,

Laura

0 10
0 507


I'm trying to find a good way to control the Filename for X12 Acknowledgement files, but there doesn't seem to be a way to do that without custom coding. Here's what I figured out so far:

EnsLib.EDI.X12.Service.FileService allows you to set a Reply Target Config, which would likely be an X12 File Operation. The Service doesn’t have any settings related to the name of the Acknowledgement file though. That’s determined entirely by the Operation.

1 1
0 672

What would be the preferred method to create an HL7 message from an input that is not HL7?

Would it be better to take the non-HL7 input and construct an HL7 message in the business service that then gets passed off to a routing process, or would it be best to just pass the non HL7 message to a routing process that called a data transformation to create the HL7 message?

My thought is the later, due to the fact that updates to the creation of the HL7 message are done using the graphical DTL editor rather than editing COS in the service.

0 1
1 684
Question
· Apr 22, 2016
Transformations

Hi this is my first post, so a little about my background. I've been programming in PHP/JavaScript for about 10 years.
I've got quite a bit of knowledge surrounding object orientated programming and know the basics.

Last year I looked into the Mirth integration engine and did some work around that.

I've now moved jobs and I'm doing some work (surprise, surprise) with Ensemble.

0 1
0 618

Good afternoon, I have image files stored on disk. I would like to display those images in an <image> control as the end user clicks on rows in a tablepane. I already do this with image data stored in a cache database:

s imageComp = %page.%GetComponentById("ImgTab"_tLdCnt)
s imageComp.disabled=0
s tId=rsId.Get("ID")
s tPageObj=##class(My.PageObj).%OpenId(tId)
s oid=tPageObj.ImageBLOB.%Oid()
s encryptedOid=..Encrypt(oid)
s imageComp.src="%25CSP.StreamServer.cls?STREAMOID="_encryptedOid

0 2
0 695

The following situation always catches out new Ensemble users, and is likely to continue doing this until it is addressed..

A business operation, service or other host that is configured with a dedicated # of actors, (ie, not using the actor pool) runs with the version of compiled code that existed when the host was started. This code is loaded in memory.

0 1
0 506
Article
· Apr 20, 2016 1m read
Feedback on Product Documentation?

We are in the process of putting a new UI on the existing product documentation, including a mobile-optimized view. We also plan on releasing additional "solution based" documentation that is targeted at common usage scenarios or important configuration tasks.

We are interested in your feedback on our current product documentation - what you like and dislike and especially what changes you would expect to see to make it as useful as possible.

3 15
0 839

It looks like the normal usage of calling an Ensemble based Web Service via Ensemble is to create an Ensemble Business service that inherits from EnsLib.SOAP.Service which is then used to call a business operation which inherits from EnsLib.SOAP.Operation and the SOAP Outbound Adapter which can be generated via the SOAP wizard.

0 1
0 593

Hello,

In my project, I am calling a store proc on third party database. I am using SQL Gateway and ODBC. Everything is working fine until the store proc changed. In store proc they have changed the return alias name for a column. In Ensemble Snapshot I am not seeing the modified alias name until I restarted the whole Healthshare instance.

Here is my question, is there any other way? We do not want to take the instance down if it happens after we go live.

Thanks

Raghu

0 1
0 546

We are currently looking into a way to provide a group of end-users (i.e. non-Interface Development engineers) access to a pre-defined group of Ensemble-based Data Lookup Tables for purposes of viewing and editing. We do not want to give them access to ALL Data Lookup Tables due to security/continuity concerns.

My thinking is that a simple persistent Cache table with three columns (Role Name, Table Name, Access-Level [like View or Edit]) with a CSP front-end could potentially provide an easy way to make this solution a reality.

0 1
0 944
Question
· Apr 14, 2016
HL7 to Quadramed

Hi,

IHAC who is trying to connect Ensemble to Quadramed for HL7 messaging, however, it seems that in order to do this, the following is required:

"we open a passive connection to Quadramed and then listen for a connection request from Quadramed, once this is established we then send messages"

Has anyone done this before? Is this possible with the standard HL7 components?

Thanks,

Steve.

0 1
0 381

Presenter: Maxim Vershinin
Task: Easily extend your solution’s range of interoperability
Approach: Build Java-only business services and business operations that exploit open-source Java libraries

Problem: The title states the problem Open source java libraries exist for hundreds of protocols and formats. This session explains how you can easily build java only Business Services and Business Operations to that exploit these libraries to extend the range of interoperability.

Content related to this session, including slides, video and additional learning content can be found here.

0 0
0 295

Presenter: Louise Parberry
Task: Reduce the need for skilled developers to define and normalize data from outside sources
Approach: Use the Ensemble Record Mapper and other tools to automatically define comma-delineated and fixed-width data structures

If you need skilled software developers to define and normalize data coming from business partners or customers, you probably have a backlog of unsatisfied requests. The record mapper and other tools allow analysts to define comma delimited and fixed width data structures without needing a developer and this session explains how this can be incorporated into an application to create an efficient and effective way to clear that backlog.

Content related to this session, including slides, video and additional learning content can be found here.

0 0
0 210

InSync is an application currently under development by InterSystems, primarily using Ensemble, as a mixed CSP/Zen web application. There's a lot of defunct legacy code in the code base and we're actively seeking it out and trimming the deadwood out.

2 2
0 377

Presenter: Mark Massias
Task: Present complete, contextualized information to the people who must act as part of a (mostly) automated business process
Approach: Give examples of using InterSystems’ workflow engine.

More and more business processes are automated, but sometimes a person needs to make a decision. In some cases policies require an individual to approve an expenditure, or when loading data a person needs to sort out exceptions where the data in not clear. This session explains how to include people in business processes in a way that presents the user with a complete context for the decision they have to make.

Problem: Using human workflow to fix business process problems.

Content related to this session, including slides, video and additional learning content can be found here.

0 0
0 241