go to post Vic Sun · May 11, 2021 I agree that Danny's suggestion to review where your licenses are being used is a good starting point. Since you mention using this license across multiple servers, I would consider the different ways your developers are connecting to Caché. If a developer has Studio, the management portal, and a terminal session open, they are probably using more than 1 license. Even with a limit of 2 developers per server, if 6 developers are on the 3 servers connecting multiple ways, you could surpass a 10 user limit. You may need a more robust license to support your team's usage patterns.
go to post Vic Sun · May 10, 2021 Hello T, I see that Kurro has already provided some samples but you are still waiting on the first question. I'm not sure if my understanding of your desire is correct, but individual rules in a routing rule are a part of the overarching rule class. While it is technically possible to programmatically edit a class, my personal feeling is that this approach feels more complicated than necessary. To make changes to individual rules it might make more sense to use a source control solution and deploy the version of the rule class that has the rules that you want. Another benefit of the source control methodology is that to make changes in prod, rather than editing production code in a live system, you would be choosing between deployment of (hopefully) tested versions of the rule.
go to post Vic Sun · May 3, 2021 Hello Andre, Take a look at these two other posts with very similar questions, maybe you can find something that works for you. Unfortunately, there doesn't seem to be a built-in random function on the SQL side (though on the Objectscript side there is $RANDOM.) https://community.intersystems.com/post/how-select-random-row-table https://community.intersystems.com/post/custom-query-returns-random-number-columns
go to post Vic Sun · May 3, 2021 Hello again Fábio, These errors are one part of the picture. It would probably be beneficial to open a ticket with the WRC so they can look into these errors and your performance issues to see if they are related/separate. Do you know what queries are triggering these errors? w3wp.exe is an IIS process but I'm not familiar with EXTRService.exe or KIORAS. Perhaps the IP addresses can also help you narrow down the source. The <READ> errors indicate something like a problem reading from the socket, but that doesn't explain the cause. There may be other logs you can review in your environment to help explain this.
go to post Vic Sun · Apr 28, 2021 To add-on to my initial post, I do think that if you use the same type of outbound adapter and inbound adapter (ie counted), it would be expected for the message to be accepted. Since you're sending XML I wonder why the operation isn't using the counted XML adapter. Hopefully, somebody with expertise in this area can help you.
go to post Vic Sun · Apr 28, 2021 Hello Sai, You might need to give more details on what your operation/service code looks like to determine what's going on. The WRC or your InterSystems rep could probably help with this. The TCP adapter (including counted) docs can be found here. There are similar docs for the outbound, but it's pretty much the same but swapped for outbound: Overview of Inbound TCP Adapter "EnsLib.TCP.CountedInboundAdapter supports incoming TCP connections over which a TCP client and TCP listener exchange blocks of data, with the block length specified in the first 4 bytes of the block. The adapter uses the block length to acquire the meaningful portion of the data from the client application." The above doc page also includes some guidance for setting up a TCP service. Is there a particular reason you are using a Counted operation/service rather than generic TCP? I'm unfamiliar with the use case for the Counted adapters. Connecting Systems with Interoperability Productions > Introducing Interoperability Productions > Connectivity Options The above suggests that the counted adapters are meant for handling "counted data blocks". The error you are getting seems to indicate a mismatch between the block size being sent, and the expected size. Looking at the traffic in a Wireshark could be helpful to understand what is happening.
go to post Vic Sun · Apr 27, 2021 Hello Fábio, I'm just quoting the class reference I linked: "This method is called to remove data from the %SYS.PTools.SQLStats table. It does not remove data from %SYS_PTools.SQLQuery, those rows are cleaned up when a query is compiled" You can take a look at what's actually filling up your CACHE database to determine if this will work for you. For a complete purging, I'd go with purging cached queries, as that's the "full" solution.
go to post Vic Sun · Apr 27, 2021 Hello Fábio, In IRIS there is a convenient SQL Runtime Statistics page where you can purge those stats. Using the SQL Runtime Statistics Tool On your version, the equivalent tool only offers the option to purge cached queries, so I think that's what you'll need to do. %SYS.PTools.SQLStats.Purge will purge some of the SQL stats data, though not all. "Purging a cached query purges any related SQL Stats data. Dropping a table or view purges any related SQL Stats data." edit: corrected, CE 2018.1.5 does not have the purge stats option that IRIS does.
go to post Vic Sun · Apr 26, 2021 Hello Alex, Have you confirmed that the original transaction process goes away when the VPN disconnects? How are you opening the terminal in the first place? If disconnecting the VPN leaves the original process around, it won't have a chance to rollback the transaction. edit: perhaps this is related to your Journal Freeze on error setting?
go to post Vic Sun · Apr 26, 2021 Hello Kevin, I'm not very familiar with 3rd party tools that could be good for this (I'm sure they exist), but you should be able to design a Caché-role that has the restrictions you are looking for. I think you should be able to use SQL and portal permissions to lock down a role to your specifications. Using Custom Resources with the Management Portal SQL Privileges and System Privileges
go to post Vic Sun · Apr 23, 2021 Hello Eudoro, It sounds like you may be able to leverage mirroring, which is built-in and is an IRIS functionality where separate instances of IRIS can automatically transfer journal files to synchronize their copies of a database. Docs here: Mirroring Architecture and Planning
go to post Vic Sun · Apr 23, 2021 Rico, WRC stands for Worldwide Response Center and is short for InterSystems Support. https://www.intersystems.com/support-learning/support/
go to post Vic Sun · Apr 20, 2021 Ah, that might be because you are on a base version of 2017.1, but it was added in a maintenance release (perhaps 2017.1.3)? I tried to find some documentation on that but it wasn't super obvious to me. I'd definitely recommend upgrading if possible.
go to post Vic Sun · Apr 20, 2021 Hello Michael, I tested this in terminal calling ##class(Ens.Util.FunctionSet).CurrentDateTime(), and I can't see a reason why you couldn't use a variable in this function. You'd need to concatenate your variable into the time format string, ex:..CurrentDateTime("%K("_tDstOffSet_")%q") Let me know if that works for you.
go to post Vic Sun · Apr 20, 2021 Hello Virginia, this isn't directly related to your question, but consider using zf(-100) as zf(-1) is deprecated. 2017.1 docs here:$ZF(-100) "$ZF(-100) provides similar functionality to $ZF(-1) and $ZF(-2). Its use is preferable to $ZF(-1) or $ZF(-2), which are both deprecated functions."
go to post Vic Sun · Apr 19, 2021 Hello Abed, What permissions do you have exactly for cstop, the database directories / cache.lck, and the contents of the bin directory? Perhaps the Unix permissions docs would be helpful: UNIX® Users, Groups and Permissions Also, can you try using "ccontrol stop" rather than calling cstop directly?
go to post Vic Sun · Apr 19, 2021 Hello Adrian, Some people already talked about the system mode for the portal, but John (one of your commenters) previously wrote a different post about adding information to the terminal prompt itself which may be useful as well: https://community.intersystems.com/post/where-am-i-adding-extra-information-terminal-prompt There's a documentation link on that page, but you can have your terminal be prefixed by host name or instance name, for example.
go to post Vic Sun · Apr 16, 2021 Hello Michael, What is your current CurrentDateTime call and are you familiar with the syntax for setting the format? What is missing or needs to change in your current result?
go to post Vic Sun · Apr 15, 2021 Sorry Chip, I'm afraid you're out of luck. On Unix there's "iris rename" but this doesn't work on Windows because of registry stuff. To rename an instance on Windows you'll have to migrate.
go to post Vic Sun · Apr 15, 2021 Re: mirroring HSSYS (or other system / library databases), please make sure you review the documentation for the product you are using specifically. Documentation for older versions of HealthShare Information Exchange's documentation is not available online, but in recent versions HSSYS can and should be mirrored. Example from HS 2018.1 docs: Mirroring a New Information Exchange "Now that you have created the mirror, you can mirror the databases. For a new installation, you only have to mirror one database, HSSYS. When you configure Information Exchange using the Installer Wizard (or an installer script), all of the databases that are created in that process will then be automatically mirrored."