Did you install 2016 version on the same machine where you had Cache 2014? For me, it looks like, the error on AutoCAD or Windows side, not on Caché side. But anyway I think you should ask for help in WRC.
- Log in to post comments
Did you install 2016 version on the same machine where you had Cache 2014? For me, it looks like, the error on AutoCAD or Windows side, not on Caché side. But anyway I think you should ask for help in WRC.
Plase add some more details, what do you mean by slowly?
Do you work remotely? Is it still slowly if connect locally on the server?
Well, there are some different reasons to do it:
I would recommend to use a bit modern way
set rs=##class(%Routine).RoutineListFunc("ABC*.int")
while rs.%Next() {
write !,rs.Name
}
Tani, please change all terminal samples and samples of code from pictures to plain formatted text.
InterSystems still support only SQL-92. While WITH appeared only in SQL-99. So, Caché doesn't support it.
w #,*27,"[32m" s $lb(tw,th,twi,c,tp,l)=$lb(2,4,8,40,4,24) while (l-th>tp) { f st=0:1:th-1 { s y=tp+st,x=c-(tw/2),w=tw-1 s:w ts(y)=$lb(x,w) w *27,"[",y,";",c-(tw/2),"H/",*27,"[",y,";",c+(tw/2),"H\" s tw=twi/th*2+tw } s tp=tp+th,tw=tw-twi } w !,*27,"[0m","Press any key to exit" f { w *27,"[",y,";",x+1,"H",$j("",w) f i=1:1:y\4 { w *27,"[",$r(10)+30,"m",*27,"[",y,";",$r(w)+x+1,"Ho",*27,"[1;1H"} s y=$o(ts(y),-1,d),$lb(x,w)=d i w<5 {s y=$o(ts(""),-1) h 0.3} r q:0 q:$t } w *27,"[0m"
It is a very different question, please create as a separate one.
Before doing such task, you should know a bit more about technologies which you going to use. PDF - it is a binary format, so, you can't just copy text from PDF. Some of the files may contain a text, some just a picture with text. And to get plain text from PDF, you have to use some third party OCR software. One of the leaders is ABBYY FineReader it is proprietary, but if you need you can find some products for free.
Interesting, it is a very good task for Docker.
Thanks, I had not noticed Problem View before. But now I see that problem in some file, which was found by Atelier in a project folder. And in my case, error was File is too large to parse properly for file jqeury.min.js.
Thanks, for such a good project. Hope to see open source repository with it.
Look at this article here. It helps you to write some method in this class for this task.
I would suggest that you have authorization in your web-application, and SoapUI fails to load it because it is not authorized.
follow the documentation and add it to the URL.
&CacheUserName=_SYSTEM&CachePassword=SYS
When you want to use Ensemble on Docker, it means that you need some integration with some external services. When you have to connect to some external services, no need any extra actions. But when you should use some shared folder, or some own internal services, which will be used by others, you have to expose some TCP ports, or volumes, and do some changes in a running process for this container. But you can use some network settings for the container, and in this case, Ensemble will be as a usual machine in your network, and you don't need to change any settings when you have to add some new internal service into Ensemble Production. Windows also supports Docker but from version Server 2016. Windows also supports windows containers, but I don't know yet, is it supported to run windows version of Ensemble or not.
What you need to start your first Ensemble container within Ensemble application. The easiest way is to define some %Installer Manifest. When you can create a new database, load and compile your code, do some changes in an Ensemble settings. There are some different examples of Dockerfile. Quite simple, with only Ensemble. Or even with Apache inside, for some web application.
You can also look at this example of Dockerfile
### Cache ###
FROM tutum/centos:latest
MAINTAINER Dmitry Maslennikov
# update OS + dependencies & run Caché silent instal
RUN yum -y update \
&& yum -y install which tar hostname net-tools wget \
&& yum -y clean all \
&& ln -sf /etc/locatime /usr/share/zoneinfo/Europe/Prague
ARG WRC_USERNAME
ARG WRC_PASSWORD
ARG cache=ensemble-2016.2.1.803.0
ARG globals8k=512
ARG routines=32
ARG locksiz=117964800
ENV TMP_INSTALL_DIR=/tmp/distrib
# vars for Caché silent install
ENV ISC_PACKAGE_INSTANCENAME="ENSEMBLE" \
ISC_PACKAGE_INSTALLDIR="/opt/ensemble/" \
ISC_PACKAGE_UNICODE="Y" \
ISC_PACKAGE_CLIENT_COMPONENTS="" \
# vars for install our application
ISC_INSTALLER_MANIFEST=${TMP_INSTALL_DIR}/Installer.cls \
ISC_INSTALLER_LOGFILE=installer_log \
ISC_INSTALLER_LOGLEVEL=3 \
ISC_INSTALLER_PARAMETERS="routines=$routines,locksiz=$locksiz,globals8k=$globals8k"
# set-up and install Caché from distrib_tmp dir
WORKDIR ${TMP_INSTALL_DIR}
# our application installer
COPY Installer.cls .
# custom installation manifest
COPY custom_install-manifest.isc ./$cache-lnxrhx64/package/custom_install/manifest.isc
# license file
COPY cache.key $ISC_PACKAGE_INSTALLDIR/mgr/
# cache distributive
RUN wget -qO /dev/null --keep-session-cookies --save-cookies /dev/stdout --post-data="UserName=$WRC_USERNAME&Password=$WRC_PASSWORD" 'https://login.intersystems.com/login/SSO.UI.Login.cls?referrer=https%253A//wrc.intersystems.com/wrc/login.csp' \
| wget -O - --load-cookies /dev/stdin "https://wrc.intersystems.com/wrc/WRC.StreamServer.cls?FILE=/wrc/distrib/$cache-lnxrhx64.tar.gz" \
| tar xvfzC - . \
&& chmod +r ./$cache-lnxrhx64/package/custom_install/manifest.isc \
&& ./$cache-lnxrhx64/cinstall_silent custom_install \
&& cat $ISC_PACKAGE_INSTALLDIR/mgr/cconsole.log \
&& cat $ISC_PACKAGE_INSTALLDIR/mgr/installer_log \
&& ccontrol stop $ISC_PACKAGE_INSTANCENAME quietly \
&& rm -rf $TMP_INSTALL_DIR
# Caché container main process PID 1 (https://github.com/zrml/ccontainermain)
RUN curl -L https://github.com/daimor/ccontainermain/releases/download/0.1/ccontainermain -o /ccontainermain \
&& chmod +x /ccontainermain
# TCP sockets that can be accessed if user wants to (see 'docker run -p' flag)
EXPOSE 57772 1972 22
ENTRYPOINT ["/ccontainermain", "-cconsole", "-i", "ensemble"]
And installer manifest, with just some settings.
Class Temp.Installer
{
XData setup [ XMLNamespace = INSTALLER ]
{
}
ClassMethod setup(
ByRef pVars,
pLogLevel As %Integer = 3,
pInstaller As %Installer.Installer,
pLogger As %Installer.AbstractLogger
) As %Status [ CodeMode = objectgenerator, Internal ]
{
do %code.WriteLine($char(9)_"set pVars(""CURRENTCLASS"")="""_%classname_"""")
do %code.WriteLine($char(9)_"set pVars(""CURRENTNS"")="""_$namespace_"""")
#; Let our XGL document generate code for this method.
Quit ##class(%Installer.Manifest).%Generate(%compiledclass, %code, "setup")
}
}
In this example, Ensemble distributive will be downloaded directly from the WRC.
to build this image
docker build -t ensemble --build-arg WRC_USERNAME=******* --build-arg WRC_PASSWORD=******* .
and to run the container from this image
docker run -p 57772:57772 ensemble
You can do it even with Caché, but you have to implement it by yourself. I think, the client for FHIR exists only in HealtShare products. But FHIR it is just a REST server, and you can do some connections quite easy, with latest versions of Caché, where JSON was appeared.
Most companies doing their backup over the network. It depends on how big your database, and you should estimate, how quickly it will be in your case theoretical and in practice. Unfortunately, on some old versions of Caché, in some cases there are some lack of performance and backup may work not so fast as expected. We had such issue with 2012.2.
And a little hint, to do backup over the network, Caché instance should have an access. And if your Caché works on Windows, you should change user in settings for Caché Service, to some domain user, which will have access to write.
First error says Expected expression primary, next lines some different errors: Syntax error, Expected COS command
Business Service it is just retrieving data, in some different ways with adapters. It means, that you should create Business Process. With a custom Business Process, where you should do all transformation, you can get data from different sources, in the same format, transform it somehow, and send to next Process, or Business Operation.
Look at this open source project, it is a spatial index for Caché, this project was done at the first InterSystems hackathon in Moscow. And the article in Russian about it.
This tool for another task, and is not suited for you.
As I understand you have to connect to another server, so, you can use class %IO.Socket. With methods Write/Read to send/retrieve data. If you have to create an own server, which will be used by some other servers, you can use %IO.ServerSocket class.
You got this error because you tried to use ODBC connection, but you say that you have JDBC connection. You should understand that it is different, with different ways to connect.
If you really use JDBC, you can create the new connection to the Oracle database, with a help from this article in the documentation. And with a code something like this, you can retrieve needed data from that server.
#dim %JDBCGateway As %Net.Remote.Java.JDBCGateway
set conn=$system.SQLGateway.GetJDBCConnection("cache2samples")
if conn'="" {
set cmd = "SELECT top 10 id,ssn,name,age,dob FROM Sample.Person"
set st = %JDBCGateway.prepareStatement(conn,cmd)
set %JDBCGateway.StatementCache(conn) = st
set query = %JDBCGateway.execQuery(st)
set columns=%JDBCGateway.getColumnCount(st)
write !
set pos=0
for i=1:1:columns {
set name=%JDBCGateway.getColumnName(st,i)
set size=%JDBCGateway.getColumnDisplaySize(st,i)
set pos(i)=pos
set pos=pos+size+1
write name,?pos
}
while %JDBCGateway.next(st) {
write !
for i=1:1:columns {
write ?pos(i),%JDBCGateway.getString(st,i)
}
}
}Mostly disagree with your opinion. Docker is a good way for microservices, and docker it is not just one container, in most cases, you should use a bunch of them, each as a different service. And in this case, good way to control all this service is docker-compose. You can split your application into some different parts, database, frontend, and some other services.
And I don't see any problems, in such way, when InterSystems inside one container, with application's database. And the power of docker is you can run multiple copies of the container, at once, when it will be needed. I see only one problem here, is separated global buffer, it means that it used not efficiently. Can you give an example different way with the different database server? I've tried some of the databases, in a container, and they work in the same way.
Each container with InterSystems inside, and one our service inside. And I don't see any troubles here, even in security. Your way it is a bad way, it is like add a new layer with docker, like container (Application) inside another container (Caché), too complicated.
In password security most valuable is entropy.
And a bit of humor about it.
It means, that even if you have a quite hard pattern for the password, but some password will not be strong enough.
On the internet, you can find some online calculators, for the password, when you can check how different symbols change difficulty. For example http://www.passwordmeter.com/
As I see you have multiple tasks. At first, you should parse this file. But I don't see any code from you, how you tried to do this task. So, I'm not going to do it instead of you. Just give you some advices. Looks like format for this file is fixed, you can use %Stream.FileCharacter class to read file line by line, with method ReadLine. Then for each read line of text you can use regular expression to extract needed data.
But I don't know what to say about second part of your question because I have not worked yet with HL7.
in this mode, you should have access to call ^SECURITY tool, where you can what you want.
%SYS>d ^SECURITY 1) User setup 2) Role setup 3) Service setup 4) Resource setup 5) Application setup 6) Auditing setup 7) Domain setup 8) SSL configuration setup 9) Mobile phone service provider setup 10) OpenAM Identity Services setup 11) Encryption key setup 12) System parameter setup 13) X509 User setup 14) Exit Option? 1 1) Create user 2) Edit user 3) List users 4) Detailed list users 5) Delete user 6) Export users 7) Import users 8) Exit