Let's say the user need to execute some heavy code (build a report, or extensive calculations etc.). So, of course it needs to be asynchronous, and we possibly need to store some data about execution status. How?
SELECT EventType, InitiatedAt, COUNT(*) as cnt
FROM HS_IHE_ATNA_Repository.Aggregation
WHERE EventType = 'LOGIN'
AND LocalDateTime > '2016-02-16 11:00:00'
GROUP BY EventType, InitiatedAt
Recently I came across a very strong statement to the effect that InterSystems.Data.CacheClient.dll library works fast because it does not open a TCP/IP connection, instead it works in the same process as a database. It made me pause for quite some time. Firstly because .Net Managed Provider, which utilises this library, opens TCP/IP connection to the database (and it is stated in the documentation "Using .NET and the ADO.NET Managed Provider with Caché"). And secondly, because as far as I know only eXtreme applications attach themselves to the process.
I was wondering, what is your favourite public cloud provider?
What is your level of engagement with the cloud provider? Are you testing their infrastructure? In which case I'd expect you being progressing a parallel test with at least a second provider ;-) Or, are you already running a production environment?
--
OK, so, let me be the first one to share my experience with one specific cloud provider.
We do have a production including a SOAP.OutboundAdapter that make a request to a .NET WCF Service. The response from that service vary in size. When it come to large one, we talk about maybe 8000 records (with 6-8 attributes per record) in xml, the adapter always give a timout. Even if we put a high number of seconds or set -1. After 1 1/2h still nothing get back. It's just standing there and waiting for ever.
Our .NET developer have look at it (on the WCF-service) and from ther point of view they say that it seems like Ensemle can't handle such big responses.
I'm revisiting some older projects that can benefit from the new JSON support and dynamic object capabilities in 2016.1 FT / 2016.2 FT. (Particularly, some of the really new features in the latest 2016.2 FT.)
For the particular thing I'm working on, it would be very handy to be able to merge objects, similarly to https://api.jquery.com/jquery.extend/. The closest thing I've found so far (in 2016.2 only) is:
Set o1 = {"a":1,"c":2}, o2 = {"b":1,"c":1}
Write "o1: ",o1.$toJSON(),!
I'm writing some custom functions for use in a routing rule. I have a few that are working, but right now I'm trying to use one that has no parameters. Typically this would be a sub instead of a function, but I'm not familiar enough with Cache to know what I need to do here.
I've searched the ObjectScript reference for any instances of Upper, Lower or Case and the only thing is a case/switch statement. In all the documentation I can only find SQL and Cache Basic references for things like UCASE.
In preparation for a presentation I need a real-world LDAP schema that has been customized a bit beyond the basics. Perferably this would be based on an OpenLDAP system which would make it easier to merge into this presentation.
If you have such a schema you would be willing to share please respond or contact my directly at Rich.Taylor@InterSystems.com
I'm planning to have a web-based management and deployment interface. For now I have started writing some .mac scripts. Will I be able to call these from a web page? Or do I just need to start with Zen?
Most of projects on Caché, obviously, written not only in Cache ObjectScript, and should contain sources in other languages. Such as js or css for web-projects or any others. And it would be pretty good, if I could see all of files in one project, and possible to edit all of them. How to be in this case ?
And I think it is not a good idea, to place all project's sources in one root folder. Our project contains over 3 thousands classes and routines, and it is too difficult to find anything in such folder. Is not a good for it to use Java-way, and place every package in subfolder ?
I'm interested in different approaches on how to store user data in Caché. I'm assuming that application uses Caché security/Caché users and not a self-made authentication system.
The minimum interval between invocations of the adapter by the Ensemble framework. For adapters that poll for external events, this is the polling interval. However, most polling adapters will process all inputs immediately if several are detected at one time.
It is easy to receive JSON representation or dynamic Array from %ListOfDataTypes:
set l=##class(%ListOfDataTypes).%New()
do l.Insert("a")
do l.Insert("b")
do l.Insert("c")
set arrStr=l.$toJSON()
zwrite arrStr
set arr=l.$compose([])
zwrite arr
How to make backward conversion? How to receive %ListOfDataTypes from dynamic Array an JSON string?
I'm working on a proposal for a deployment tool development project and I was wondering if anyone had any experience with such a thing.
We use Healthshare and implementations for new clients are tedius and lengthy. Lots of ensemble service, registry value, lookup tables, namespaces and other things have to be created and configured.
I would like to create a Zen or CSP page based deployment tool that can do all this with a few parameters and some custom code.
Has anyone come up with a way to create a separate thread of processing that can achieve shared access to a set of objects created from the initials process? The situation is this. There is a large complex set of objects representing a business process. Some of these objects are in-memory only. The desire is to spin off a separate thread that could do some ancillary processing on this data set without slowing down the main process. Any thoughts?