go to post Mark Hanson · Feb 6, 2017 The overhead of looking up a node is O(ln n), the structure is based on a B+ tree. Some information here:http://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY=...https://en.wikipedia.org/wiki/B%2B_tree
go to post Mark Hanson · Feb 3, 2017 Also very helpful if you want to look at the problem from a global centric view rather than a code centric view is ^GLOSTAT:http://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY=...
go to post Mark Hanson · Jan 19, 2017 I think scrolling and showing the output as soon as possible is the most useful as this shows the user what is happening and it is the same behavior for all other terminals I have used. Often you can make out patterns in the output even though it is scrolling and this can be handy.The other thing I noticed is that Ctrl+C does not appear to work, is it meant to?
go to post Mark Hanson · Jan 19, 2017 Looks great, nice project! I noticed it takes a while to update the screen when I run something like this, is there any possibility for optimization of this? for i=1:1:1000 w $tr($j("",400)," ","@"),!
go to post Mark Hanson · Jan 6, 2017 Routine and classes are just stored in globals like everything else. So if you copy all globals from one database to a brand new database then it will copy any routines/classes that were present in the original database to the new database too.I see another answer already addressed the mapping question.
go to post Mark Hanson · Jan 6, 2017 The key bit of information here is the 'service unavailable' error being returned rather than say a 'not authorized' or 'not found' errors. By default when out of licenses we return the service unavailable error so if anyone else sees this they should check license usage as a first step. If you get not authorized errors it is probably a security issue so check the audit log as this often shows the exact problem.
go to post Mark Hanson · Jan 5, 2017 It sounds like somewhere in your application you have a call that returns OID values to the client, then as a separate step you wish to return the stream associated with this OID. Is it possible instead of returning the OID to the client you just return the stream directly to the client? So what is the need for the client to store the OID when it is really the stream the client wants?Assuming there is a good reason for returning the OID you can follow this pattern.Server gets request where it would previously return the OIDServer generates a new random number using $system.Encryption.GenCryptRand to generate a random numberServer stores this random number in a table against the OID it wishes to associate it with and a timetstampServer sends the random number to the clientClient at some point wishes to get the stream so it sends the random number to the serverServer looks up the random number in the table and finds the OID and serves up this stream if the request is within some time period of the random number being generated. Then it deletes the random number from the table.You also need to write some code to cleanup this table and remove expired random numbers from the table periodically or it could grow over time if you generate values and the client never uses them.
go to post Mark Hanson · Jan 5, 2017 As you know these escape sequences are valid HTML escaping of unicode characters. The general principal is always that you store the text in the database as characters i.e. not escaped at all and you apply any escaping needed when serving this content to a client. So it appears you need to convert these escaped characters into something you can store in your 8bit database.Now in general I would suggest using unicode in which case you can just make sure the data being sent to you is correctly converted into unicode characters and then you just store the characters in the database. This would then work with any characters and not just the few you are having problems with. However it sounds like you do not want to move from 8bit to unicode. If that is the case anything you do will be something of a hack, but you can just use $replace on the data coming in to convert say "%u2019" to "'" before you store it in the database to 'normalize' the input. This solution will only cover a few characters where you can find a suitable replacement but it may be enough to get by for the short term while you investigate moving to unicode as a permanent solution.
go to post Mark Hanson · Jan 3, 2017 You can also view the line at the command prompt with:ZZPRINT "main+45^LBZNSJHCACUPLB"Or to view 5 lines before this line and 2 lines after:ZZPRINT "main+45^LBZNSJHCACUPLB":5:2