Intro

Most server-client communication on the web is based on a request and response structure. The client sends a request to the server and the server responds to this request. The WebSocket protocol provides a two-way channel of communication between a server and client, allowing servers to send messages to clients without first receiving a request. For more information on the WebSocket protocol and its implementation in InterSystems IRIS, see the links below.

This tutorial is an update of "Asynchronous Websockets -- a quick tutorial" for Caché 2016.2+ and InterSystems IRIS 2018.1+

Last comment 5 hours 19 min ago
1 3
56

views

+ 3

rating

Hi

We have just completed a migration of a test environment from Ensemble 2012 to Ensemble 2017 on a new server. This is the last in a series of migrations but the first to encounter this particular issue. All web clients making SOAP requests to a particular external web service are receiving a fault that states:

The SOAP action specified on the message, '', does not match the HTTP SOAP Action, 'http://<expected target service action follows here>'.

Further investigation using ^ISCSOAP and a comparison with other working environments reveals that the SOAP request is completely missing the <SOAP-ENV:Header> element.

This absence of a SOAP header occurs for multiple Operations in more than one Namespace for this newly migrated server, yet it is present in every other environment, all of which use the same source code.

So, is there a single installation-wide setting that could be causing this behaviour

Last answer 21 hours 46 min ago
0 1
0

comments

24

views

0

rating

Hi,

I want to create a messages statistics group by month and year using deepsee. To do that I'm creating a DeepSee data model based on Ens.MessageHeader.

I added both SourceConfigName and TargetConfigName as dimensions and now I'm trying to add TimeCreated but I get these messages 

ERROR #5001: Level in time dimension must have a timeFunction: TimeCreated.H1.TimeCreated
  > ERROR #5490: Error running generator for method '%GetModel:User.Mensajes' 
ERROR: %DeepSee.CubeDefinition.cls(%GetModel) of generated code compiling subclass 'User.Mensajes'
    > ERROR #5030: An error occurred while compiling class 'User.Mensajes'
Compiling routine User.Mensajes.1

Also, I tried to add a time function (MonthYear) to extract the TimeCreated value and got these messages

Last answer 1 days ago
0 2
0

comments

18

views

0

rating

We would like to know if there are any ramifications swapping out our code database while an Ensemble production is running. We are trying to minimize down time as much as possible and even though stopping and starting the production ideally would be pretty quick, is it possible that we could just restart the business hosts that had the code change?

So this is our setup:
Ensemble 2016.1

global cache.dat
code1 cache.dat
code2 cache.dat

Namespace that we switch to point to either code1 or code2 and is mapped to the globals.

Has anyone done this? We are hesitant to do this and we also know we could try this out in our non prod environments but any user feedback would be very helpful.

Last answer 1 days ago
0 3
0

comments

32

views

0

rating

I've seen a few password change posts, but I wasn't 100% sure it was the same process, so I am asking here. We periodically have to change the passwords for a few Cache user accounts across several servers. Is there a process/script to change these passwords without having to go into the web portal on each server?  Thanks so much, and I apologize if this was covered in some of the other articles that I've run across. Just looking for the best method.

Last answer 2 days ago Last comment 1 days ago
0 2
39

views

0

rating

I am having an intermittent issue that when I make a call to MSSQL from a BPL that the response does not come back in the amount of time required. Since the call from the BPL is synchronous I tried changing the timeout to 60 but it has not helped (see below). Is there anyway to guarantee that the call waits long enough for a response before continuing on?

 

Thanks

Scott Roth

Last answer 2 days ago Last comment 1 days ago
0 3
39

views

0

rating

I am trying to convert a string to date but can not get it to work I have  function that I would like to take in a date string and covert it to date object

here is the ezample so far can not get it to work any help appreciated 

 

set p="12/03/2019"
 
w $System.SQL.TODATE(p,"YYYY-MM-DD")
 
<ILLEGAL VALUE>todate+32^%qarfunc

if I try this still get the wrong value returned

set p="12/03/2019" 
w $ZDATE(p,3)
1841-01-12

 

Last answer 1 days ago Last comment 10 days ago
0 6
105

views

0

rating

Version 2016

Created a business process and ticked "Is component".

Later trying to use it as component  from another business process, and when trying to set up target for a call activity, selecting process components does not show anything in the list.

Any idea why?

Last answer 24 January 2019 Last comment 2 days ago
0 2
61

views

0

rating

I worked through the Community for proposals to provide end users
in an easy way with data formatted as EXCEL sheet.

There is an great article Tips & Tricks - SQL to Excel

there's an important message embedded: "EXCEL can interpret HTML tables and display them as usual"

Nice!
But the result is on your server and you are left alone to get it out to your remote user somewhere.
Could be a subject to be solved using REST or WebServices

Last comment 2 days ago
0 10
590

views

+ 13

rating

This is a continuation of my story about the development of my project isc-tar started in the first part.

Just having tests is not enough, it does not mean that you will run tests after all changes. Running tests should be automated, and when you cover all your functionality with tests, everything should work well after any change in any place.  And Continuous Integration (CI) helps to keep the code and deployment procedure with as fewer bugs as possible and automates the routine procedures, like publishing releases.

I use GitHub to store the source code. And some time ago GitHub started to work on their own CI/CD platform and named it GitHub Actions. It is not widely available, yet. You have to be signed as a beta tester for this feature, as I did. GitHub Actions uses quite a different way how to deal with a build workflow. What is important that Github Actions allows to use docker, and it’s quite easy to customize available actions. And interesting that GitHub Actions is really much bigger than any classic CI like we have in Travis, Circle or Gitlab CI and so on. You can find more in the official documentation.

1 1
0

comments

22

views

+ 1

rating

Hello everyone,

 

i am in process of changing our authentication method, so we can integrate our AD authentication in our programs. At the moment i am using they %SYS.LDAP object, and trying to use the .Bind() method with the user information to authenticate. This seems to work without issues, but here the problems start.

When i flag a user 'Change password on next logon' in our Active Directory, the Bind fails with a status error: "Invalid Credentials". To make sure the user who logged in is in fact the user to change the password. I still need to check if this user entered the correct current login information.

Checking the fields 'badPwdCount' or 'badPasswordTime' does not help since they are not filled after a failed .Bind() it seems.

Anyone has experience with this issue and knows how to work around the change password issue?

Thank you guys in advance!

 

Thomas

0 1
0

answers

0

comments

20

views

0

rating

Hello all,

I am having some issues creating a docker image with a fresh cache installation. The error that I am getting right now is that gzip is required for a cache installation, but was not found in my system. Even though, this is shown as installed in the base centos 7 image. My host machine is Windows 10 using the latest docker version.

Here is my dockerfile, its simple:

FROM centos:latest

RUN yum update -y && yum -y upgrade

COPY ./cache-2017.1.3.317.0.18571-lnxrhx64.tar.gz .

RUN tar -zxf cache-2017.1.3.317.0.18571-lnxrhx64.tar.gz

RUN ISC_PACKAGE_INSTANCENAME="MyDatabase" \

          ISC_PACKAGE_INSTALLDIR="/usr/cachesys/" \

          ISC_PACKAGE_UNICODE="Y" \

         ISC_PACKAGE_CLIENT_COMPONENTS="" \

         ISC_PACKAGE_INITIAL_SECURITY="Minimal" \

        /cache-2017.1.3.317.0.18571-lnxrhx64/cinstall_silent



EXPOSE 57772 22 1972

ENTRYPOINT ["ccontrol", "start cache"]

Last answer 2 days ago Last comment 2 days ago
0 3
40

views

0

rating

Hi! We have received a request to create a new rule on CachéQuality to identify when a developer uses double quotes (" ") within any SQL statement.

We have been asked many times about SQL validation rules, and we would like to open a debate to allow everyone discuss what would you like to be checked on a SQL statement.

Current examples are for basic situations:

  • Using SQL.Statement class:

Set stmt = ##CLASS(%SQL.Statement).%New()
Set query = "Select Val1, Val2 FROM Table WHERE Val1=""SomeCondition"""

  • Using embedded SQL

&SQL(SELECT Val1, Val2
                INTO :val1, :val2
                FROM Table
                WHERE Val1="SomeCondition")

Last answer 2 days ago Last comment 2 days ago
0 3
67

views

0

rating

Starting with 2017.1, InterSystems is adding Ubuntu (64-bit) as a third linux server platform. Prior to 2017.1 Ubuntu was already available as a development platform and customers could use InterSystems distributions build for SUSE to run on Ubuntu. As a result there are a few license key implications for 64-bit linux versions starting with Caché and Ensemble 2017.1:

a) Customers using RedHat will observe no changes

b) Customers using InterSystems products(1) for SUSE on SUSE will need new license keys (no charge)

c) Customers using InterSystems products(1) for SUSE on Ubuntu will need new license keys (free of charge for 12 month(2))

(1) Caché, Ensemble, HealthShare, and TrakCare

(2) Starting with the Release of 2017.1

0 9
795

views

+ 9

rating

Hi Community!

I think everyone keeps the source code of the project in the repository nowadays: Github, GitLab, bitbucket, etc. Same for InterSystems IRIS projects  check any on Open Exchange.

What do we do every time when start or continue working with a certain repository with InterSystems Data Platform?

We need a local InterSystems IRIS machine, have the environment for the project set up and the source code imported.

So every developer performs the following:

  1. Check out the code from repo
  2. Install/Run local IRIS installation
  3. Create a new namespace/database for a project
  4. Import the code into this new namespace
  5. Setup all the rest environment
  6. Start/continue coding the project 

If you dockerize your repository this steps line could be shortened to this 3 steps:

  1. Check out the code from repo
  2. Run docker-compose build 
  3. Start/continue coding the project 

Profit - no any hands-on for 3-4-5 steps which could take minutes and bring head ache sometime.

You can dockerize (almost) any your InterSystems repo with a few following steps. Let’s go!

Last comment 2 days ago
5 4
89

views

+ 2

rating

This question is about calling AWS REST APIs. Based on:

http://docs.aws.amazon.com/general/latest/gr/sigv4_signing.html

AWS requires REST clients to call their APIs using Signature Version 4 which in case you don't know what I am talking about is a pain in the neck.  Here comes the question:

Has anybody, by any chance implemented the v4 signing alg. in COS? If yes, would she or he have the kind heart to share?

Thanks,

Chris

 

 

Last answer 23 March 2017 Last comment 3 days ago
0 4
261

views

0

rating

InterSystems states that Caché supports at least three data models – relational, object and hierarchical (globals). On can work with data presented in relational model in a program written on C# the same way one works with any other relational DB. To work with data presented by object model in C# one needs to use .NET Managed Provider or some kind or ORM. And starting with version 2012.2 one can work directly with globals (or use direct access to hierarchical data) via Caché eXTreme for .NET

Last comment 3 days ago
2 5
404

views

+ 4

rating

I'm attempting to use the .NET Entity Framework provider that is provided by InterSystems (see: https://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY=GBMP_eframe).  In our environment, the "Support Delimited Identifiers" option is turned off and we are not allowed to turn it on without significant testing effort.  When this setting is off, the SQL that is generated by the Entity Framework provider is not considered valid and therefore the provider doesn't work (it DOES work, however, when this setting is turned ON).

Do you know of any way to work around this issue? Again, we don't have the option of turning the "Support Delimited Identifiers" option ON unfortunately.

0 1
0

answers

0

comments

16

views

0

rating