go to post Robert Cemper · Aug 8, 2017 you are right on %objlasterror. and that's how I work it aroundbut if you want to keep a log and chase sporadic error events this is quite an extra effort.
go to post Robert Cemper · Aug 8, 2017 definitely a good idea to run routine ^%GSIZE to find the big consumers and packingdirectory: c:\intersystems\cache\mgr\user\Page: 1 GLOBAL SIZE 08 Aug 2017 10:28 AM Global Blocks Bytes Used Packing Contig. -------- -------- --------------- ------- ------- CacheStd 1 140 2 % 0 CacheStdS 1 92 1 % 0 CacheStream 109 764.376 86 % 70 ERRORS 1 12 0 % 0 G1 1 72 1 % 0
go to post Robert Cemper · Aug 8, 2017 thx.so you confirmed to me that it was't just wishful thinking
go to post Robert Cemper · Aug 7, 2017 Wow. 5.0 is roughly 12..15 yrs. back.Could be ^GBLOCKCOPY existed then already in NS %SYS. It should be able to cover your needs and create a new smaller CACHE.DAT in a new directory.
go to post Robert Cemper · Aug 7, 2017 My personal preference is %Status: 1 = OK,0 = something went wrong + standard or handmade Error Code+ ability of $system.Status.Append(Status) to get a chain of error messageswhich gives you the chance to drill down to the source. Which is especially important whenyou get it from some embedded action.The opposite to me is<ZSOAP> that leave you alone with no hint what went wrongor the famous <ZSG> homed in %Save() Methodto pass return value I prefer objects or variables passed byRef od Output The other opposite is SQLCODE (would be better named SQLerror) 0 is OK. Anything else needs actionBut that's tradition in SQL world since more than half a century
go to post Robert Cemper · Aug 7, 2017 all Studio settings are stored in Windows registry.Search with regedit for InterSystem
go to post Robert Cemper · Aug 6, 2017 where do you verify the result and where do you see the error ?
go to post Robert Cemper · Aug 6, 2017 If this user should also be programmer you can create a new role copying from %Developerand then remove the DB's that you want him to lock out like this just for NS = USER .
go to post Robert Cemper · Aug 6, 2017 Thanks for the pointer!Good to see that someone got the time to productize the idea of Custom Index TypeWith this development the win could have been even more dramatic.My benchmark was done in March2011, so Caché version must have been 2010 . 2013.1 was my last version @ISC just rolling out.At that time bitmaps helped only with rather relaxed precision.
go to post Robert Cemper · Aug 3, 2017 For an engineer this sounds like a quite challenging exercise to rewrite a PGP lib in COS. But it seems more promising to wrap the existing (and hopefully well tested) code and consume it from Caché using one of the existing Gateways:- Callout Gateway http://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY=...- ActiveX Gateway http://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY=...- or just connectover TCP/IP http://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY=...or UDP http://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY=...or a Pipe http://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY=...I bet the community has even more ideas to reuse the existing code
go to post Robert Cemper · Aug 3, 2017 indeed this is surprising.but is this really: do content.ReadLine(,,isEOL)it should be a pass by reference to receive something back do content.ReadLine(,,.isEOL) with the <dot> in front of the variable
go to post Robert Cemper · Aug 2, 2017 You still have the option to create your own %ZLANGC00.int and make you own ZZEXIT to avoid the risky HALTIt's a miracle to me how HALT could survive from PDP-7 sn#103 at MGH and nobody touched it.
go to post Robert Cemper · Aug 2, 2017 to me this looks like your content had an extra $C(13,10) at the end.It could help to have the full content at hands. eg:before content.OutputToDevice()set ck=content.Read()set ^ck($i(^ck))=ckdo content.Rewind()I expect zwrite ^ck will show more than 3 linesThat would indicate that the source of trouble is on the input side. Some closing action ?
go to post Robert Cemper · Aug 2, 2017 if you change wnl() ...townl() quityou just disable it to see if it plays a role at all
go to post Robert Cemper · Aug 2, 2017 I don't see a call for wnl() but ancient coding practices would suggest its: writenewline just thatand that's what it does without any other content.though the remark is rater direct if interpreting feedback := line // Should be smart as well: routines ending with write ! will create an empty feedback!