#Caché

30 Followers · 4.6K Posts

  

InterSystems Caché is a multi-model DBMS and application server. See more details here.

Documentation.

Question Susobhan Pandit · Apr 20, 2017

I am working in Cache Objectscript where I need to process around 0.2 million data.

I am executing SQL query through "%Library.ResultSet"

Code Example:

Set tsRSet=##class(%Library.ResultSet).%New("<query name>")
Set status = tsRSet.Execute(<param 1>,<param2>)
While tsRSet.Next()
{
     Business Logic
}

Is there any limitation of the above code when the number of records the query is fetching is high.

If the query returns 0.5 million to 1 million record will my code work properly or it may break due to high volume of data.

I have 4 GB RAM and 2 GB global buffer in my production system.

4
0 562
Article Chris Stewart · Apr 21, 2017 2m read

At the end of our last lesson, we ended with our page displaying a nice (but garish) Angular Material Toolbar, and our Widget data displaying in a list of Material cards.  Our page feels a bit static, and we already know that the large number of Widgets that we will be dealing with will not be especially usable on a static list.  What can we do to help?


A filtering function would be very helpful, so let's add a text input to the top of the page. We will bind this to a variable in the $scope - widgetFilterText so that Angular has access to the value we type in.

0
0 1518
Question Paras Batheja · Mar 15, 2017

Hi,

We have a application developed in CSP and JS. Is there any way to make this application available in multiple language like Spanish etc.

We are ready to re-write the code in Zen also if it supports that feature.

Could any one of you please assist/advice a Solution to reach the required goal using Cache technologies, it will be a great help if someone has any sample code for the same.

Thanks 

Paras

7
0 586
Question Everardo Cunha · Apr 19, 2017

I wonder if you could help me? I have a regular cache class that accepts a variable number of arguments in one of the methods. It works fine so I decided to add a method to my web service to make the call to the cache class. I get a compile error on the web service with error#5130.

Here is the cache class

class method GenerateFileFromSQL(file As %String, sql As %String, delimiter As %String = "", args...) As %Status

and here is the web service code that calls it:

ClassMethod GenerateFileFromSQL(file As %String, sql As %String, delimiter As %String = ""

2
0 940
Question Roger Beeman · Apr 20, 2017

Hi All -

I was wondering if the below query could be enhanced to automatically look back 24 hours from the current datetime the query is run. As is now I, of course, have to update the date range in the WHERE clause manually.

The query is just getting all MessageBodyClassNames, counting them and then doing an AVG on TimeCreated and TimeProcessed. Nothing too complex.

SELECT MessageBodyClassName, count(ID) as Count_Of_Messages, avg(datediff(ss, TimeCreated, TimeProcessed)) as avg_processing_time_in_seconds

FROM %PARALLEL Ens.

1
1 2780
Question Scott Roth · Apr 19, 2017

Awhile back we had someone write some code to Log messages like we did in eGate but with Ensemble.

ClassMethod LogIt(pComponent As %String, pMsgIn As %String)
{
 set vDIR="/ensemble/"_^OSUWMCInstance_"/logs/"
 set fs=##class(%Stream.FileCharacter).%New()
 set fs.Filename=vDIR_pComponent_".log"
 do fs.MoveToEnd()
 set vTM=$PIECE($ZDATETIME($HOROLOG)," ",2)
 //$ZTIME($PIECE($H,",",2),1)
 do fs.WriteLine(vTM_" : "_pMsgIn)
 do fs.%Save()
 set fs = "" // Close file
}

We found that the IO on this was slowing messages down, and those Operations that had high volume of message would fall behind.

2
0 1521
Question Константин Ерёмин · Apr 20, 2017

Hi All,

I use SQL function JSON_OBJECT to get data as a JSON object.

However, sometimes I get error with function JSON_OBJECT when values contain [, ], { or }.

Error:

[SQLCODE: <-400>:<Fatal error occurred>]

Unexpected error occurred in JSON_OBJECT() function execution of <JSON_OBJECT>.%FromJSON().Parsing error

For example,

Query: SELECT JSON_OBJECT('idSQL':id, 'content':content) FROM DocBook.

9
0 1524
Article John Murray · Feb 14, 2017 1m read

If you are developing applications that use CSP or Zen, or potentially any of the other InterSystems web-related stuff that's built on top of CSP, then it's important to know how to keep one particular secret.

A central part of the CSP security architecture is a server-side session key. "Server-side" because its value should never be revealed to the client that is issuing the web requests. If it is revealed, a malicious client might be able to use it to bypass your security and make your server do things you don't want it to.

Your session key is available as a property named Key of your %CSP.

1
0 741
Question prabakaran a · Apr 20, 2017

Hi All,

         We can sent the file to FTP server using CMD prompt.

         When trying send file using cache FTP. it automatically logged out.

          While cache FTP access (read/write) FTP server it automatically logged out.

CODE:

S ftp=##class(%Net.FtpSession).%New() 
     S Server="test"
     S Username="test"
     S Password="test"
     I $L(Server)=0||($L(Username)=0)||($L(Password)=0) S Status="Invalid Credentials" Q Status 
     S ConnSt=ftp.Connect(Server,Username,Password)
     I 'ConnSt S Status="Couldn't Estabilish the FTP connection" Q Status
     ;
     ;Linking the file 
     D ftp.

1
0 858
InterSystems Official Steve Brunner · Apr 19, 2017

InterSystems is pleased to announce the availability of the following maintenance releases:

  • Caché and Ensemble 2016.2.2
  • HealthShare Health Connect v15.021 on two core technology releases, 2016.2.2 and 2017.1.0

Caché and Ensemble 2016.2.2 are available on the same platforms as 2016.2.1

HealthShare Health Connect v15.021 for core technology 2016.2.2.853.

0
0 587
Article Fabian Haupt · Apr 19, 2017 2m read

Code coverage and performance optimization of code has come up a bunch of times already, so most of you should already be aware of the SYS.MONLBL utility. Often a visual approach to looking at code is much more intuitive than pure numbers, which is pretty much the whole point of this article series. This time we will take a slight excursion away from python and its tools and are going to explore generating heatmaps from ^%SYS.MONLBL reports.

As a quick reminder a heatmap is just a specific visualization tool, which gives us an overview of data where colors represent a certain value.

0
1 694
Question Chris Bransden · Apr 19, 2017

Hi!

I'm trying to insert a relationship from a parent object instance to a child object instnace programmatically. Ie, i want to do:

Do parentObject.childRefProperty.Insert(chilDobject)

where childRefProperty is defined by a string. I feel this should be achievable with $PROPERTY and/or $METHOD or maybe something in  $SYSTEM.OBJ.*, but can't quite figure it out. Anyone know?

Cheers :)

Chris

3
0 322
Article Chris Stewart · Apr 19, 2017 3m read

We finished our last lesson with our Widgets Direct page receiving a Welcome message as a property of a JSON object, which was unpacked and displayed on the page. However, we are on Lesson 3, and we still haven't had any talk of displaying widgets yet.  

Let's change that.  Widgets Direct are a leader in widget and widget accessories, so we clearly have numerous items to display.   To transfer this, we will need to declare and return our first array.  Let's go back to our REST.Dispatch class, and add this data to our Service.

0
0 1987
Question Alexandr Ladoshkin · Apr 18, 2017

Hello,

I work with trigger and I need afeter update make INSERT into LogTable value of prorerty of saved class.  This is what i have in this monent.

S className = ..%ClassName(1)
S cls=##class(%Dictionary.CompiledClass).%OpenId(className)
F i = 1:1:cls.Properties.Count() {
    S prop = cls.Properties.GetAt(i)
    S propName = prop.Name
    S value={propName*N}
}

How Can I get value given "prop".

Thank you

8
0 699
Article Sean Connelly · Apr 13, 2017 3m read

On the back of my recent post on writing bug-less code I wanted to raise a few suggestions (to ISC) that would help prevent certain types of bugs at compile time. I've probably missed a few, but these are the main ones in my mind. Please contribute more suggestions.

Btw, these also serve as potential gotchas for new COS developers.

I except that introducing these types of changes can cause legacy code problems. Particularly where developers do some interesting overloading of method arguments.

24
0 1287
Question Alexandr Ladoshkin · Apr 17, 2017

Hello everyone.

I have some issue with trigger. I have class where I defined 3 triggers (UPDATE, INSERT, DELETE). These triggers are  Foreach = row/object. In my currently task, I need overide this triggers in children class.  is It possible to do it? 

Thank you for your help.

4
0 424
Article Brendan Bannon · Oct 27, 2016 2m read

New WRC Customer Interface

Come check out the new WRC interface we have made available to supported customer. 

Some of the new features available to you are:

                Organization Dashboard – gives an overview of your organizations activity for this year

                Bug / Enhancement (prodlog) History – you can now look at all the prodlogs your organization has entered.  This table will show you the current status, planned version the fix should be in and the correction key for prodlogs that are fixed.

                Adhoc History – review all the completed adhocs you have received.

9
0 1222
Article John Murray · Apr 13, 2017 1m read

I only recently noticed the presence of a local database named CACHE alongside the more familiar CACHESYS, CACHELIB, CACHETEMP and CACHEAUDIT.

A bit of digging through the documentation archive led me to conclude that the CACHE database arrived in 2010.2, where the release notes say:

 

Note the lack of an accent on the words I have highlighted.

The above documentation is incorrect when it says "this database is mounted as read-only". In fact it is mounted RW. But the %DB_CACHE security resource that controls access to it only grants R as its public permission.

1
0 587
Article Kyle Baxter · Apr 12, 2017 1m read

 It's almost time to get your customers upgraded to new versions - are you worried about showing off your SQL Performance after upgrades?  If you want to upgrade without worrying, then I have just the program for you!!!  Check out this video from Global Summit 2016 featuring yours truly explaining how to upgrade a system without worrying about pesky SQL queries showing on your waistline!  

https://www.youtube.com/watch?v=GfFPYfIoR_g

0
0 389
Question Arto Alatalo · Apr 11, 2017

I have classes A and B, B derived from A, A has method Abc.

From INT of class B I see that compiler copies implementation of Abc to class B, so that Abc exists both in A and B.

As result, when B invokes Abs, B.Abs() is executed instead of A.Abs(). In result debuger is not able to step into Abs and breakpoints in A.Abs never hit.

Why this happens and how can I avoid this?

Update:

OK, now I know the reason: compiler makes the copy if Abc has this line:

cn=##Expression($$$quote(%classname))

hmmmm.

21
0 527