User Answers

Did you check if you have enough licenses available (e.g. Portal -> View system dashboard -> Highest License Use)

You can also look at View Audit Database to see if there are any related messages

Hi Kurt,

Some old terminal emulators cannot work with UTF8.

I used AniTa which had the same problem connecting to a Caché Unicode server.

I tried TeraTerm which is free and can at least work with UTF8 and VT320 emulation, but i haven't tried all our terminal tricks yet to see if it can do the job for 100%.

Once you start TeraTerm, don't forget to change in Setup->General the language to UTF-8,.

Setup -> Save Setup will save all your changes to a Teraterm.ini file so they will be in effect the next time.



Are you unable to POST anything, or are you looking for an easy way to construct JSON in 2012.1.4 ?

The class to POST something is %Net.HttpRequest, you need to send the form as a  stream.

In recent (2016.2 upward) versions, you can create a dynamic object and convert it to a JSON string, but 2012.1.4 is lacking this  JSON support,.

But you should still  be able to send a string in the body part formed (manually) as correct JSON :

Can you still connect with Studio on the same machine ?

Apparently, the factory.Connect is failing, what is the value of ConnStr ?

You could change the line by 

ConnStr = factory.ConnectDlg()

which will display a dialog with options to login, or give you an error if it cannot reach Caché.

Hi Eduard,

I have found some old code to visualize a WordCloud using iKnow.

This code is showing the concepts of a source, and adds weight according to a simple tf/idf score.

I have put the (old) code on github here

The code is using %iKnow.Queries.EntityAPI.GetBySource, and the CSP page is using the jquery library from AwesomeCloud to render the wordcloud. (Today I would not use CSP pages anymore with Caché script or CSP tags, but like i said, it is old code;)

The cconsole.log should also give you a clue why it cannot mount the database.

Make sure the file cache.lck is not present : it indicated the cache.dat is mounted by (another) Caché instance.

Also verify the block size of the cache.dat : nowadays it is default 8Kb, but in some previous versions, you could specify other block sizes, and if it is the case, you need to allocate global buffers that are minimum that size.

Hi Scott,

Here is some code that stores the sizes of all globals for a database, if you create an entry in the task manager to run this code every day, you will see in the global  ^tempSize which globals grow faster than others :

do ##class(Utils.Database).GlobalSize()

(please change the code to store the results in a global that does not exist, or better, in a persistent class)