So, I want to mess around with atoti. I installed the library but I can't connect to session. I can't connect to the session using jupyter, and if I use google colab, I can't connect to the website. I don't know what's going on nor can I find any documentation on this.
Code that I used for jupyter (anaconda):
import atoti as tt
session = tt.Session()
#error statement
---------------------------------------------------------------------------
ConnectionRefusedError Traceback (most recent call last)
File ~\AppData\Local\anaconda3\lib\site-packages\atoti\_local_session.py:179, in LocalSession._create_subprocess_and_java_api(self, distributed, license_key)
176 try:
177 # Attempt to connect to an existing detached process (useful for debugging).
178 # Failed attempts are very fast (usually less than 2ms): users won't notice them.
--> 179 self._java_api = JavaApi(
180 py4j_java_port=_PY4J_DEFAULT_PORT,
181 distributed=distributed,
182 )
183 self._server_subprocess = None
File ~\AppData\Local\anaconda3\lib\site-packages\atoti\_java_api.py:157, in _enhance_py4j_errors.<locals>.wrapped_method(self, *args, **kwargs)
156 try:
--> 157 return function(self, *args, **kwargs)
158 except Py4JJavaError as java_exception:
File ~\AppData\Local\anaconda3\lib\site-packages\atoti\_java_api.py:293, in JavaApi.__init__(self, auth_token, py4j_java_port, distributed)
286 def __init__(
287 self,
288 *,
(...)
291 distributed: bool = False,
292 ):
--> 293 self.gateway: JavaGateway = _create_py4j_gateway(
294 auth_token=auth_token, py4j_java_port=py4j_java_port
295 )
296 self.java_session: Any = self.gateway.entry_point
File ~\AppData\Local\anaconda3\lib\site-packages\atoti\_java_api.py:276, in _create_py4j_gateway(auth_token, py4j_java_port)
274 assert gateway_server is not None
275 gateway_server.resetCallbackClient( # pyright: ignore[reportGeneralTypeIssues, reportOptionalCall]
--> 276 gateway_server.getCallbackClient().getAddress(), # pyright: ignore[reportGeneralTypeIssues, reportOptionalCall]
277 python_port,
278 )
280 return gateway
File ~\AppData\Local\anaconda3\lib\site-packages\py4j\java_gateway.py:1321, in JavaMember.__call__(self, *args)
1316 command = proto.CALL_COMMAND_NAME +\
1317 self.command_header +\
1318 args_command +\
1319 proto.END_COMMAND_PART
-> 1321 answer = self.gateway_client.send_command(command)
1322 return_value = get_return_value(
1323 answer, self.gateway_client, self.target_id, self.name)
File ~\AppData\Local\anaconda3\lib\site-packages\py4j\java_gateway.py:1036, in GatewayClient.send_command(self, command, retry, binary)
1016 """Sends a command to the JVM. This method is not intended to be
1017 called directly by Py4J users. It is usually called by
1018 :class:`JavaMember` instances.
(...)
1034 if `binary` is `True`.
1035 """
-> 1036 connection = self._get_connection()
1037 try:
File ~\AppData\Local\anaconda3\lib\site-packages\py4j\clientserver.py:284, in JavaClient._get_connection(self)
283 if connection is None or connection.socket is None:
--> 284 connection = self._create_new_connection()
285 return connection
File ~\AppData\Local\anaconda3\lib\site-packages\py4j\clientserver.py:291, in JavaClient._create_new_connection(self)
288 connection = ClientServerConnection(
289 self.java_parameters, self.python_parameters,
290 self.gateway_property, self)
--> 291 connection.connect_to_java_server()
292 self.set_thread_connection(connection)
File ~\AppData\Local\anaconda3\lib\site-packages\py4j\clientserver.py:438, in ClientServerConnection.connect_to_java_server(self)
436 self.socket = self.ssl_context.wrap_socket(
437 self.socket, server_hostname=self.java_address)
--> 438 self.socket.connect((self.java_address, self.java_port))
439 self.stream = self.socket.makefile("rb")
ConnectionRefusedError: [WinError 10061] No connection could be made because the target machine actively refused it
During handling of the above exception, another exception occurred:
RuntimeError Traceback (most recent call last)
Cell In[4], line 1
----> 1 session = tt.Session()
File ~\AppData\Local\anaconda3\lib\site-packages\atoti\_telemetry\track_calls.py:95, in _track_function_calls.<locals>.function_wrapper(*args, **kwargs)
92 call_tracker.tracking = True
94 try:
---> 95 return _track_function_call(function, call_path, *args, **kwargs)
96 finally:
97 call_tracker.tracking = False
File ~\AppData\Local\anaconda3\lib\site-packages\atoti\_telemetry\track_calls.py:54, in _track_function_call(function, call_path, *args, **kwargs)
52 call_time = time.perf_counter()
53 try:
---> 54 return function(*args, **kwargs)
55 except Exception as error:
56 with contextlib.suppress( # Do nothing to let the previous error be the one presented to the user.
57 Exception
58 ):
File ~\AppData\Local\anaconda3\lib\site-packages\atoti\_runtime_type_checking_utils.py:168, in _TypecheckWrapperFactory.create_wrapper.<locals>.typechecked_func_wrapper(*args, **kwargs)
165 typeguard.check_argument_types(memo)
167 # Call the actual function.
--> 168 return self._func(*args, **kwargs)
File ~\AppData\Local\anaconda3\lib\site-packages\atoti\session.py:245, in Session.__init__(self, name, app_extensions, authentication, branding, client_certificate, extra_jars, https, i18n, java_options, jwt, logging, port, same_site, user_content_storage, **kwargs)
242 if name is not None:
243 _sessions._clear_duplicate_sessions(name)
--> 245 super().__init__(
246 config=config,
247 distributed=False,
248 license_key=private_parameters.license_key,
249 name=name,
250 plugins=private_parameters.plugins,
251 )
253 self._warn_if_license_about_to_expire()
254 self._cubes = Cubes(
255 delete_cube=self._java_api.delete_cube,
256 get_cube=self._get_cube,
257 get_cubes=self._get_cubes,
258 )
File ~\AppData\Local\anaconda3\lib\site-packages\atoti\_local_session.py:153, in LocalSession.__init__(self, config, distributed, license_key, name, plugins)
150 if not license_key and LICENSE_KEY.use_env_var:
151 license_key = os.environ.get(LICENSE_KEY_ENV_VAR_NAME)
--> 153 self._create_subprocess_and_java_api(
154 distributed=distributed, license_key=license_key
155 )
157 for plugin in plugins.values():
158 plugin.init_session(self)
File ~\AppData\Local\anaconda3\lib\site-packages\atoti\_local_session.py:186, in LocalSession._create_subprocess_and_java_api(self, distributed, license_key)
183 self._server_subprocess = None
184 except ConnectionRefusedError:
185 # No available unauthenticated detached process: creating subprocess.
--> 186 process = ServerSubprocess(
187 config=self._config,
188 license_key=license_key,
189 plugins=self._plugins,
190 session_id=self._id,
191 )
192 self._java_api = JavaApi(
193 auth_token=process.auth_token,
194 py4j_java_port=process.py4j_java_port,
195 distributed=distributed,
196 )
197 self._server_subprocess = process
File ~\AppData\Local\anaconda3\lib\site-packages\atoti\_server_subprocess.py:94, in ServerSubprocess.__init__(self, config, license_key, plugins, session_id)
84 license_key = local_to_absolute_path(_COMMUNITY_LICENSE_KEY_PATH)
86 self._process = Popen(
87 self.command, # noqa: S603
88 env={**os.environ, LICENSE_KEY_ENV_VAR_NAME: license_key},
(...)
91 text=True,
92 )
---> 94 match, startup_output = wait_for_matching_output(
95 _PY4J_SERVER_STARTED_PATTERN,
96 process=self._process,
97 )
99 self.py4j_java_port = int(match.group("port"))
100 self.auth_token: Optional[str] = match.group("token")
File ~\AppData\Local\anaconda3\lib\site-packages\atoti\_wait_for_matching_output.py:40, in wait_for_matching_output(pattern, process, timeout)
38 while process.poll() is None:
39 if (datetime.now() - start) > timeout:
---> 40 raise RuntimeError(
41 get_error_message(
42 reason=f"{timeout.total_seconds()} seconds elapsed but the process output did not match the expected pattern."
43 )
44 )
46 line = process.stdout.readline()
47 output.write(line)
RuntimeError: 100.0 seconds elapsed but the process output did not match the expected pattern.
COMMAND:
'C:\Users\HIS10842\AppData\Local\anaconda3\lib\site-packages\jdk4py\java-runtime\bin\java' --add-opens=java.base/java.nio=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED -jar -Dserver.port=0 '-Dserver.session_directory=C:\Users\HIS10842\.atoti\1689286805_8Q7AFX' -Dserver.logging.disable_console_logging=true '-Dhadoop.home.dir=C:\Users\HIS10842\AppData\Local\anaconda3\lib\site-packages\atoti\bin\hadoop-3.2.1' '-Dloader.path=C:\Users\HIS10842\AppData\Local\anaconda3\lib\site-packages\atoti\data\activeui-initial-content.jar,C:\Users\HIS10842\AppData\Local\anaconda3\lib\site-packages\atoti\data\admin-ui.jar,C:\Users\HIS10842\AppData\Local\anaconda3\lib\site-packages\atoti\data\application.jar,C:\Users\HIS10842\AppData\Local\anaconda3\lib\site-packages\atoti\data\atoti-plus.jar' 'C:\Users\HIS10842\AppData\Local\anaconda3\lib\site-packages\atoti\data\atoti.jar' --enable-auth
PATTERN:
Py4J server started on port (?P<port>\d+)(?: with auth token (?P<token>.+))?$
OUTPUT:
Jul 13, 2023 3:20:13 PM ActiveViam License log
INFO: Activating ActiveViam Licensing Agent.
Jul 13, 2023 3:20:13 PM com.activeviam.activation.impl.LicenseManager a
INFO: License has been found from system property -Dactivepivot.license=C:\Users\HIS10842\AppData\Local\anaconda3\lib\site-packages\atoti\data\community.lic
Jul 13, 2023 3:20:13 PM ActiveViam License log
INFO:
*************** Platform Information *****************
System Time: July 13, 2023
Number of Processors: 4
MAC address: 60-45-BD-CC-8A-AE
IP address: 172.21.96.46
Hostname: haeadedavd1-58
******************************************************
********** ActivePivot License Information ***********
License ID: 627da152-6d61-43b5-9348-ad49ae5f5c2e
Client name: atoti community
End Date: Thu Oct 12 21:00:00 PDT 2023
Maximum Number of Processors: 0
Restricted MAC address: -
Restricted IP address: -
Restricted Hostname: -
On Demand: true
On Demand License Server: AWS_EU_WEST_1_PROD
Target Environment: -
Datastore Enabled: true
DirectQuery Enabled: false
ActiveUI Enabled: true
ActiveMonitor Enabled: true
Collateral Optimizer Enabled: false
******************************************************
ActivePivot Version: 6.0.6-20230630-143543
Jul 13, 2023 3:20:35 PM ActiveViam License log
WARNING: Unable to contact license server for initial check. Retry in 15 seconds.(Connection timed out: connect)
Jul 13, 2023 3:21:11 PM ActiveViam License log
WARNING: Unable to contact license server for initial check. Retry in 30 seconds.(Connection timed out: connect)
Jul 13, 2023 3:22:03 PM ActiveViam License log
Code I used in google colab:
import atoti as tt
session = tt.Session()
session.link()