There isn't any flag telling whether a database is Unicode or not inside the database file. If a Unicode database has no UNICODE characters, it will be accessible by an 8-bit version without problems. 

If you want to know if a database has wide characters (Unicode chars), you could try to read all the globals inside an 8-bits instance and wait for a <WIDE CHAR> error. In order to read all the globals, there are several alternatives, like building a small routine, doing a backup and/or restore, exporting/importing globals, etc. Of course, there are more elegant ways to check the globals and data than expecting an error. 

Kevin, 

You should run it over the weekend, if the system is busy, the operation may take longer or not fully complete. 

See notes from the documentation: 

Compacting a Database

The compact database operation is designed to run concurrently with normal database activity. The operation does consume some system resources, however, and may not complete if the system is under extremely high load. For these reasons, InterSystems recommends running this and other database reorganization operations (including compacting and defragmenting globals) during off-peak hours, and running only one such operation on a system at a time.

Thanks a lot! 

That was my intention, trying to show something as simple as possible so anyone can look inside and adapt the code to what they need. 

To make it simpler I could have used the API methods and calls provided by default, but I preferred to "hack"  those methods to allow restore where I wanted without requesting any prompt and finally running the Integrity check with multiple process. This also allow me to control the return of the integrity report and execute an IF to check if there was an error or not. 

I was logging to the messages.log (which is also displayed in the docker logs) just in case you prefer to run it not interactively or in a docker up session. You can of course leave the instance up and call the method. 

I didn't want to spend much time in the way of calling the docker instance as I am sure that in a real environment most of the customers will have to write a script moving or renaming the .cbk files and executing the app.

Hola Hector, 

Maybe another javascript error is causing the problem and that's why you are not reaching to the console.log line. 

In order to find the problem I would keep simplifying the page, remove code from above, down, etc... until it works. Being a CSP page is not affecting, as the output seen by the browser would be html. 

Another tip would be ti open the console window and checking for other errors. Also look at the code from the browser, not the one from the server. That will give you where the problem is. 

If you keep getting problem, even after simplifying the page, please paste it here so I can have a look and try to reproduce it locally. Of course if this becomes something urgent, you should open a WRC problem with support. 

Jose Antonio, 

I am not sure to understand what you are trying to do. When you use the SQL Gateway connections you will map an external table into one particular namespace. If you have several, you will have several different table names in several namespaces. 

 Then you can use those table names in your SELECT FROM queries, you will need to move to the particular namespace before launching the query (using ZN)

If I understand correctly, the main problem is that the tablepane loses the focus once the PDF is loaded. So the idea is to give it back. 

 - First of all, you need to set the tablepane to work with the arrow keys (probably you already have it, if not this is the first thing to do). 

- Then you need to monitor the PDF iframe, and once it is loaded, change the focus to the tablepane in the parent page. 

iframe.attachEvent("onload", function(){ }) is the way to do iframe onload events in IE, this function should set the focus in the tablepane. As an example the function maybe something like: 

function myFunction() { 
            document.getElementById("tablepane").focus(); 
        } 

I hope this helps! 

On Eclipse Oxigen I setup in Preferences -> DevStyle -> Color Themes: 

Workbench : Dark Gray (Darkest Dark)

Editor: Darkest Dark

Then, I needed to edit the file in the Atelier directory: 

 .metadata/.plugins/org.eclipse.core.runtime/.settings/com.intersystems.atelier.core.ui.prefs
 

which is a little bit different than previous comments.

Then added a slightly different background (not so dark) which matches with General 

Studio_Color_BG_false=24,28,31
Studio_Color_BG_true=37,37,37
Studio_Color_brace=255,255,255
Studio_Color_bracket=255,255,255
Studio_Color_classmethodname=189,214,255
Studio_Color_classname=210,81,81
Studio_Color_collationname=189,214,255
Studio_Color_cosBitlogicOperator=210,81,81
Studio_Color_cosClassName=239,191,143
Studio_Color_cosCommandWordDeprecated=210,81,81
Studio_Color_cosCommandword=210,81,81
Studio_Color_cosDollarName=210,81,81
Studio_Color_cosDollarNameDeprecated=210,81,81
Studio_Color_cosEmbedDelim=0,128,0
Studio_Color_cosEmbeddingStartOrEnd=210,81,81
Studio_Color_cosExtrinsic=210,81,81
Studio_Color_cosGlobalname=141,203,226
Studio_Color_cosGlobalname_bold=true
Studio_Color_cosIOFormat=255,255,255
Studio_Color_cosJsonBrace=255,255,255
Studio_Color_cosJsonBracket=255,255,255
Studio_Color_cosJsonKeyword=210,81,81
Studio_Color_cosKeyword=210,81,81
Studio_Color_cosLabel=210,81,81
Studio_Color_cosLabelname=141,203,226
Studio_Color_cosLocalname=136,214,255
Studio_Color_cosMacroArgsAnything=136,214,255
Studio_Color_cosMacroCall=210,81,81
Studio_Color_cosOperator=255,255,255
Studio_Color_cosPPCommand=141,203,226
Studio_Color_cosPPFunc=210,81,81
Studio_Color_cosPattern=210,81,81
Studio_Color_cosSQLFieldName=210,81,81
Studio_Color_cosstring=255,198,0
Studio_Color_csqlIdentifier=255,198,0
Studio_Color_delim=255,255,255
Studio_Color_foreignkeyname=121,171,255
Studio_Color_htmlAttributeName=121,171,255
Studio_Color_htmlAttributeValue=255,255,255
Studio_Color_indexname=189,214,255
Studio_Color_indexpropertyname=255,255,255
Studio_Color_jsKeyword=141,203,226
Studio_Color_jsOperator=255,255,255
Studio_Color_jsString=255,198,0
Studio_Color_jsonString=255,198,0
Studio_Color_methodname=255,255,255
Studio_Color_name=255,255,255
Studio_Color_number=129,180,71
Studio_Color_parameter=121,171,255
Studio_Color_parametername=189,214,255
Studio_Color_paren=255,255,255
Studio_Color_propertyname=189,214,255
Studio_Color_queryname=189,214,255
Studio_Color_sqlstring=255,255,128
Studio_Color_storagename=189,214,255
Studio_Color_triggername=189,214,255
Studio_Color_udlDocComment=201,222,12
Studio_Color_udlKeyword=80,175,226
Studio_Color_udlMCKeywordName=255,255,255
Studio_Color_udlMCKeywordValue=129,180,71
Studio_Color_udlNumericLiteral=129,180,71
Studio_Color_udlStringLiteral=255,198,0
Studio_Color_xdataname=189,214,255
Studio_Color_xmlAttributeName=255,255,255

This happened to me after upgrading. Then I tried to run Eclipse  from terminal on OSX but is not trivial, so I am posting here in case someone else have the same problem.  

I needed to cd into /Users/myuser/eclipse/javascript-oxygen/Eclipse.app/Contents/MacOS and run it from there

$ cd /Users/msanchez/eclipse/javascript-oxygen/Eclipse.app/Contents/MacOS

$ ./eclipse -clearPersistedState

Murray, 

Can you explain how you do these calculations: 

The per core scaling can be calculated as: (251/8) : (1030/24) or 26% increase in throughput per core.

80% CPU using 8-cores on the old server equates to roughly 80% CPU using 6-cores on the new E5-2680 V3 processors. So the same number of transactions could be supported on six cores.

I mean what did you do to match the 80% on the old server to 6 -cores in the new one. I got a little bit lost with the numbers or steps you do. 

Thanks

The ^MONMGR utility just send mails based on the severity of the messages in the cconsole.log. In order to find the severity in the cconsole.log you can look at the number after the date and process id. 

11/14/16-00:39:09:735 (74654) 2 [SYSTEM MONITOR] WriteDaemon Alert: Write Daemon still on pass 1112
11/14/16-00:40:40:865 (74654) 0 [SYSTEM MONITOR] WriteDaemon Alert: Write Daemon completed a pass.

In that case we can see severity 2 for the first message and 0 for the second one (The OK one). As the default severity level in ^MONMGR is 2, it will only send mails when it's 2 or higher.  Note that you can change this level from the MONMGR menu, but lowering to 0 or 1 will give you lots of messages which probably you don't want. 

Anyway, after getting any 2 level message, the recommendation is to review the logs and find what caused the problem. If is a puntual error and was solved by itself (like the one you described) you should not worry. If you keep getting such messages my recommendation is to investigate and contact with Intersystems support if you need help. 

Just a note of attention: 

Many people find that the system is taking a lot of space because they have never purge any message. In that case, do not purge all the messages at one! Purging messages will create journal entries, so if you do a very big purge you can expect a lot of journal growth and you have to take it into account. 

My recommendation would be to purge in chunks, controlling how much journal files increase and how much space left you have.