Enrico Parisi · Apr 29, 2024 go to post

Beware that $System.SQL.Schema.SetDefault() sets the default schema (optionally) for a namespace systemwide, that is, for all processes, not only current process.

Enrico Parisi · Apr 28, 2024 go to post

It seems that in your system the routine ST.int is missing, can you check if it's in the %SYS namespace?

ST.int is part of Ensemble, it should be there but apparently is not (has been deleted?).

Enrico Parisi · Apr 27, 2024 go to post

Just curious, what's the value of gmheap?
You can find it in iris.cpf or in Management Portal, System Administration > Configuration > Additional Settings > Advanced Memory

Enrico Parisi · Apr 27, 2024 go to post

If you select the option you have highlighted, then CSP Gateway will not be installed, if you don't change it, then it will be installed.
What option do you use when you install? (first dialog)

However, is this a new fresh install or an upgrade of an existing Ensemble instance?

Enrico Parisi · Apr 26, 2024 go to post

It's long time I don't install Ensemble 2018, why are you still using Ensemble and not IRIS?

I just tested installing Ensemble 2018 and CSP Gateway is properly installed and configured.

When the setup kit is run the first dialog is:

Do you get the same dialog? What option you choose?
As you can see it is also possible to install only the CSP Gateway component.

If you choose Custom then this dialog is displayed:

As you can see the option to install CSP Gateway for IIS is there.

If I proceed to the install, at the end I have the CSP Gateway properly configured in C:\inetpub\CSPGateway

In order to help you, apart from saying that is not being installed, can you provide some information on what you are actually doing and what do you actually see/get during install?

Enrico Parisi · Apr 24, 2024 go to post

I think you need to enable/allow Unauthenticated access for Web Applications.

I can see that in Web Application configuration in "Allowed Authentication Methods" the option "Unauthenticated" is not available, this means is not enabled/allowed systemwide.

In Management Portal check System Administration > Security > System Security > Authentication/Web Session Options, and see if "Allow Unauthenticated access" (first option/checkbox) is enabled.

After that, enable the option "Unauthenticated" in the "Allowed Authentication Methods" of the Web Application.

Enrico Parisi · Apr 23, 2024 go to post

Only Client application is Bit 3 only, so in binary:

1000 = 8 decimal

Pass 8 as Type parameter.

Enrico Parisi · Apr 23, 2024 go to post

There is also SYS.Stats.Dashboard class, again, I'm not sure it was in 2014 as well.

This class provides an overview of the system "health", with all of the critical metrics and statuses gathered as properties in one class. It essentially contains all of the data that's available on the Dashboard in the System Management Portal. Each property is a different metric or status.

Enrico Parisi · Apr 23, 2024 go to post

On the other hand, are you sure that your method is that same that WRITE uses to interrogate the environment ?

Why should I care? Why do you care?

Enrico Parisi · Apr 23, 2024 go to post

The WRITE command, when passed no argument, does a reflexion on the system.

Well, it simply list/write all defined variables in current stack level, something you can perform using standard Object Script commands and functions, no need to look at Write source code.

To do that you can use $order,  $query, and indirection, with some trick needed for the variables you use to perform the listing, or, maybe simpler, you can use output redirection (to a string for example) and then...well, an argument less Write command 😊

Some hint for the first option:

USER>set a=1,b=2,b(1)=3,x=""
 
USER>set x=$order(@x)
 
USER>write x
a
USER>set x=$order(@x)
 
USER>write x
b
USER>set x=$query(@x)
 
USER>w x
b(1)

For output redirection, see IO Redirect in ObjectScript in Open Exchange.

Enrico Parisi · Apr 23, 2024 go to post

Maybe your certificate file needs to include the full certificate chain, from your certificate to the CA.

Enrico Parisi · Apr 21, 2024 go to post

In order to better understand the problem, you may use SoapUI to "manually" call the WS and try different options/messages to figure what's wrong with your call.

Enrico Parisi · Apr 21, 2024 go to post

How are you calling the WS?

Are you using a Business Operation with EnsLib.SOAP.OutboundAdapter?

To understand how the header can be customized, can you provide a sample of your SOAP call?

Enrico Parisi · Apr 20, 2024 go to post

I really, really doubt that the issue is the header namespace prefix.

What does the error (soap fault) says?

Enrico Parisi · Apr 19, 2024 go to post
EPTEST>Set comp=$system.Encryption.Base64Decode("y61UKEstqlTIyc9LVyguKcoEUuUZmckZCnmpqSnFCiX5CkmpCimpaTmJJakpAA==")
 
EPTEST>Set sc=##class(Community.Compress).UnDeflate(comp,.uncomp)
 
EPTEST>Write uncomp
my very long string which needs to be deflated

Works fine for me

Enrico Parisi · Apr 19, 2024 go to post

The code I posted does exactly what you need.

You can compress/decompress with deflate or gzip using device I/O.

Enrico Parisi · Apr 19, 2024 go to post

Then you can download IRIS community edition that you can use for evaluation.

In the main page of the Developer Community click "Download InterSystems IRIS" in the left of the page.

Enrico Parisi · Apr 19, 2024 go to post

Here is a sample method to deflate without using file I/O and using XDEV instead.

ClassMethod UnDeflate(Compressed As %String, Output UnDeflated As %String) As %Status
{
    Set sc=$$$OK
    Try {
        ; open XDEV device
        Set dev="|XDEV|"_+$JOB
        Open dev:($ZF(-6,$$$XSLTLibrary,12):/HOSTNAME="XSLT") Use dev
        ; write compressed string
        Write Compressed
        ; flush buffers
        Write *-3
        ; change device mode to deflate and rewind
        Use dev:(:/COMPRESS="DEFLATE":/POSITION=0)
        ; read uncompressed content
        Read UnDeflated
    } Catch CatchError {
        #dim CatchError as %Exception.SystemException
        Set sc=CatchError.AsStatus()
    }
    Close dev
    Quit sc
}

I really wish that InterSystems implement the various compress/deflate/gzip functionality available in device I/O as utility methods. Without silly wrappers! 😉

Another wish, please InterSystems document XDEV device I/O.

Enrico Parisi · Apr 19, 2024 go to post

If I understand correctly you need to deflate and I suppose you want to add the custom wrapper to use $System.Util.Decompress(), if so...you can't. I mean you can't use $System.Util.Decompress() BUT, you can indeed deflate using I/O as in the example I posted in that post/thread.

Enrico Parisi · Apr 19, 2024 go to post

I agree that I don't like #; as a comment BUT, I prefer ; instead, I'm not a fan of // comments, probably because I'm an old InterSystems user.

Fortunately there is a way to change it, thank you for sharing the details.

Enrico Parisi · Apr 18, 2024 go to post

Beware that OnFailureTimeout() does not work as expected as described in this post.

The issue is present up to 2023.3 and is fixed in 2024.1.

Enrico Parisi · Apr 18, 2024 go to post
    Set Found=0
    Set Id=""
    For  {
        Set Id=$order(^DataTest(Id)) Quit:Id=""
        If $listget(^DataTest(Id),2)=1516 {
            Set Found=1
            Quit
        }
    }
    If Found Write "Found 1516 in Id: ",Id,!
Enrico Parisi · Apr 18, 2024 go to post

What problem are you facing configuring system default settings for Ens.Alert component? If should work as any other component.

I suggest to read the relevant documentation for your version:

Defining System Default Settings

and if you find some issue please provide some detail of the specific problem you are facing.