A Webinar was held today for our Czech and Slovak partners and end users. This webinar was an online version of what we originally planned to present earlier this year in Fabrika hotel, Humpolec as a workshop. Due to the current epidemiologic situation a decision was made to move the workshop into the virtual space.

3 5
1 282

Dynamic PoolSize (DPS) Experiment

Purpose:

Enhance Ensemble or IRIS production so it can dynamically allocate pool size for adapter-based components based on their utilization.

Sometimes, an unexpected traffic volume occurs, and default pool size allocated to production components may become a bottleneck. To avoid such situations, I created a demonstrator project some 2 years ago to see, whether it would be possible and feasible to modify production, so it allowed for dynamically modifying its components per their load.

5 3
0 460
Article
· May 15, 2020 3m read
Debugging in HealthShare

Hi, if you develop production with HealthShare, you may have noticed there is a nice tracing feature available - HS.Util.Trace.Operations. This feature allows visually tracing debug information, in structured way. It complements good old logging macros like $$$LOGINFO, $$$TRACE and alike.

I use this feature a lot. However, it has limited functionality, it works nice with classes that extend XML Adapter, streams or data types, but it doesn't work well with arbitrary objects that do no extend from XML Adapter.

3 2
0 547

Hello,

I have a very simple web service that I'd like to secure via SAML Authorization with X.509 Certificates. I am, however struggling with documentation and my lack of cryptographic skills. (I do this just for educational purposes now, but need to use it in the future)

Does anyone have an example that shows how to construct a SOAP Client with adding all necessary security headers manually or point me to a decent learning resource?

Thank you very much!

2 1
2 1.2K
Article
· Feb 11, 2019 4m read
Using Oauth2 with SOAP (Web)Services

Hi guys,

Couple days ago, a customer approached me with the wish to enhance their existing legacy application, that uses SOAP (Web)Services so it shares the same authorization with their new application API based on REST. As their new application uses OAuth2, the challenge was clear; how to pass access token with SOAP request to the server.

After spending some time on Google, it turned out, that one of possible ways of doing so was adding an extra header element to the SOAP envelope and then making sure the WebService implementation does what is needed to validate the access token.

7 1
2 10.5K
Announcement
· Oct 29, 2018
InterSystems Prague Meetup # 1

We had our first meetup of the Prague Meetup for InterSystems Data Platform last Thursday!

As it was our first such venue, the attendance was not large, but we believe it was a good start. Those who attended could learn about new features that InterSystems IRIS brings to our partners and customers as well as listen to a presentation discussing what it takes to migrate from Caché or Ensemble to InterSystems IRIS and eventually containerizing their applications.

2 2
0 263

Hi, every time I launch Atelier for the first time after my PC boot, it reports an error when trying to connect to a server.

Restarting Eclipse solves the issue and it no more manifests until next PC reboot.

Does anyone know how to avoid this issue? I run Windows 10, Java JRE 8

0 7
1 417

I was approached recently by and end use who wanted to perform analysis of their databases and see how they could save some space by picking data good for deletion without harming the application. As part of investigation, they wanted to know sizes of globals within datasets. This can be achieved by various means but all of them provide data in text form only.

I thought I might be a good tool for database administrators in general - to see global sizes in a graphical way.

2 1
0 345

Is there an API that would list classes within a given package? I can't find any. I do have a workaround that uses class index, but this query lists all classes available in the namespace and I have to filter those I want. But this is just unnecessary overhead.

If anyone has spotted such API, please let me know.

TIA!

Dan

0 3
1 1.1K

As many of you, our partners, are more widely using modern UI frameworks to create client front-end, you may have encountered a question, "So how do I secure my data when I just finished developing all new fancy browser based client experience?"

The answer is easy. Use a standard, proven OAuth2 and OpenID!

"OK, but how can I do it? I have never done it before."

No problem, just have a look here, if your client is Angular (not AngularJS) based, there is a demo project available for you to review and get inspired!

6 1
0 1.2K
Question
· Aug 3, 2017
DeepSee time series - season

Hello,

I have a series of data organized by time (year and month) so I can use a time dimension to drill down data. So far so good.

However, I need to display the data not by calendar years and months but rather by seasons. The season has 12 calendar months but starts in September. So I'd like to see the data from September / Year N to August / Year N+1 using the same hierarchy as normal time dimension.

Has anyone done something similar?

Obviously, the season can start by any month, not only September :)

TIA!

1 3
0 255

Created by Daniel Kutac, Sales Engineer, InterSystems

Part 3. Appendix

InterSystems IRIS OAUTH classes explained

In the previous part of our series we have learned about configuring InterSystems IRIS to act as an OAUTH client as well as authorization and authentication server (by means of OpenID Connect). In this final part of our series we are going to describe classes implementing InterSystems IRIS OAuth 2.0 framework. We will also discuss use cases for selected methods of API classes.

The API classes implementing OAuth 2.0 can be separated into three different groups according to their purpose. All classes are implemented in %SYS namespace. Some of them are public (via % package), some not and should not be called by developers directly.

7 0
3 3.1K

Recently, a partner company started to develop an Angular client for their Cache application. Together, we decided to leverage the power of Caché dynamic objects to exchange JSON encoded data between client and server parts. However, we realized that currently there is a gap in Cache JSON implementation that prevents simple use of traditional registered and persistent classes to exposed their data with the same ease as with XML. I wrote a small JSON adapter, that does the job and bridgers the gap. It's purpose is simple expose data described by a regular Cache class in a one-to-one fashion to a %DynamicObject. On the other hand, when a serialized JSON data comes in, it can be easily deserialized into dynamic object and subsequently bound to regular class by the newly created adapter.

13 7
1 2K

Hello

I recently spent some time with Atelier, and tried to use it's inherited (from Eclipse) XSL transformation capabilities.

I have installed Exlipse XML Editor and Tools and Orangevolt XSLT - as it provides Saxon XSLT processor.

I have XSLT 2.0 transformation defined, that uses isc:evaluate() callback function to perform some server side code.

And here is my problem: when I try to run XSL transformation of a file in my project, then as soon as the processor hits isc:evaluate() it fails.

0 5
0 635

Those of you, who work with DeepSee, might have spotted, that when working with a date hierarchy, there are several functions, allowing you to select a time function for a given level. E.g. for extracting a year from a date/time property when building date hierarchy, you simply use Year function. similarly for month number, quarter and so on. Sometimes, you may wish to see the time - namely hour numbers. For this there is a HourNumber function available with DeepSee. Unfortunately, this function converts time into 12 hours format suffixed with AM/PM to indicate day part.

2 7
0 390

This short article was motivated by a problem of one of my customers. They use Ensemble to integrate many systems, some of them use just plain files.

So they naturally selected File Outbound Adapter to write into target file. Things were running smoothly for years, until recently, when the volume of data being written to the file reached large size of tens of megabytes. The operation took around half an hour to complete, causing timing problems where subsequent operations within the process had to wait, and third party system was not happy to wait so long.

13 2
0 710