查找

Pergunta
· Jul. 20

Login error

Hi Guys, 

I've my users set in Security->Users in SMP, but I get the below error when trying to long in my application, any clues what this error means?  

"0 "_$lb($lb(864,,,,,,,,,$lb(,"US-SERENITY",$lb("e^UsersCSPLogin+87^%SYS.SECURITY^1","e^CSPLogin+103^%SYS.cspServer^1","e^CSPDispatch+909^%SYS.cspServer^1","d^CSPDispatch+907^%SYS.cspServer^1","d^ProcessRequest+1^%CSP.Session.1^1","d^Request+692^%SYS.cspServer2^1","d^Request+25^%SYS.cspServer2^1","d^ProcessRequest+1^%CSP.Request.1^1","d^css+15^%SYS.cspServer2^1","d^Server+64^%SYS.SERVER^2","d^^^0"))))

BTW my login page extends  %CSP.Login

Thanks

1 novo comentário
Discussão (4)3
Entre ou crie uma conta para continuar
Artigo
· Jul. 20 1min de leitura

Comment supprimer votre compte de la Communauté de développeurs

Bonjour la Communauté,

Si vous avez décidé de quitter la communauté des développeurs InterSystems, nous sommes désolés ! Ce guide vous guidera pas à pas pour supprimer définitivement votre compte.

⚠️ Avant de commencer : veuillez noter que la suppression de votre compte est irréversible. Si vous souhaitez simplement ne plus recevoir de notifications, pensez à mettre à jour vos paramètres de notification.

Comment demander la suppression d'un compte :

1. Connectez-vous à la Communauté des développeurs.
2. Cliquez sur votre photo de profil en haut à droite et accédez à l'onglet « Paramètres du profil ».
3. Faites défiler la page jusqu'en bas et cliquez sur « Demander la suppression du compte ».

4. Dans la fenêtre contextuelle, cliquez sur « Oui, supprimer mon compte » pour confirmer.

 

Une fois votre demande reçue, notre équipe la traitera et vous informera lorsque la suppression sera terminée.

Si nous pouvons améliorer votre expérience ou si vous avez des commentaires à partager avant de quitter, n'hésitez pas à nous contacter.


💬 Besoin d'aide ? Si vous ne parvenez pas à supprimer votre compte ou si vous avez des questions, n'hésitez pas à contacter notre équipe par message privé sur la Communauté.

Discussão (0)1
Entre ou crie uma conta para continuar
Artigo
· Jul. 19 10min de leitura

Optimizing Performance of Apache Web Server and Web Gateway

 


Optimizing Performance of Apache Web Server and Web Gateway

By Patrick Jamieson, M.D., Product Technical Manager, InterSystems IRIS for Health

When working with InterSystems IRIS or IRIS for Health, an external web server like Apache2 or NGINX is essential for managing HTTP workloads, especially for FHIR servers. Starting with version 2023.3, the private Apache server was removed from the installation kit (except for Community Editions and Health Connect). This article provides practical tips to test and optimize the performance of your Apache web server and InterSystems Web Gateway configuration.


📋 Why Performance Optimization Matters

Out-of-the-box configurations are rarely ideal for production workloads. Optimizing Apache and the Web Gateway can significantly reduce response times, improve throughput, and handle higher concurrency under load.


🛠️ Testing Performance Using Apache Bench

Apache Bench (ab) is a powerful benchmarking tool that can simulate high load, identify bottlenecks, and measure metrics like response time and concurrency.

Installing Apache Bench

On Linux, install it with:

sudo apt-get install apache2-utils

Running Tests

Start by using a simple load test:

ab -n 100 -c 10 https://yourserver/endpoint
  • -n: Number of requests (e.g., 100)
  • -c: Concurrent requests (e.g., 10)

Apache Bench (bench) will now make 100 requests with a maximum of 10 requests running concurrently.

Here are my results using the Apache2 server with a default IRIS for Health server and gateway configuration settings with a FHIR server deployed on AWS.

Server Software:       

Server Hostname:        fhir.testintersystems.com

Document Length:        2303 bytes

Concurrency Level:      10

Time taken for tests:   1.161 seconds

Complete requests:     100

Failed requests:            0

Total transferred:         264500 bytes

HTML transferred:       230300 bytes

Requests per second:    86.11 [#/sec] (mean)

Time per request:       116.126 [ms] (mean)

Time per request:       11.613 [ms] (mean, across all concurrent requests)

Transfer rate:                222.43 [Kbytes/sec] received

*Connection Times (ms)

                         min      mean[+/-sd]    median            max

Connect:          4          20        8.6       18                     57

Processing:     3          87        177.9    17                    705

Waiting:           3          85        178.1    14                    701

Total:                19        107      180.0    38                    762

 

*Connect: How long it takes ab to establish a TCP connection with the target server before writing the request to the connection (ctime)

Processing: How long the connection was open after being created (time - ctime)

Waiting: How long ab waits after sending the request before beginning to read a response from the connection (waittime)

Total: The time elapsed from the moment ab attempts to make the connection to the time the connection closes (time)

 

* https://www.datadoghq.com/blog/apachebench/

So far, these statistics look good, but when then I increased the load on the server.

ab -n 2000 -c 75 https://fhir.testintersystems.com/csp/healthshare/demo/fhir/r4/Patient/1

 

Now I saw:

Server Hostname:        fhir.testintersystems.com

Document Length:        2303 bytes

Concurrency Level:      75

Time taken for tests:   10.811 seconds

Complete requests:      2000

Failed requests:        12

(Connect: 0, Receive: 0, Length: 12, Exceptions: 0)

Non-2xx responses:      12

Total transferred:      5265484 bytes

HTML transferred:       4583092 bytes

Requests per second:    185.00 [#/sec] (mean)

Time per request:       405.401 [ms] (mean)

Time per request:       5.405 [ms] (mean, across all concurrent requests)

Transfer rate:          475.65 [Kbytes/sec] received

 

Connection Times (ms)

                         min      mean[+/-sd]                median            max

Connect:           5         118      63.9                 120                  310

Processing:       7          284     835.4               86                    5397

Waiting:           3          262      838.6               65                    5384

Total:                12        402      831.5               205                  5417

 

Percentage of the requests served within a certain time (ms)

  50%    205

  66%    226

  75%    276

  80%    296

  90%    379

  95%   2069

  98%   4195

  99%   4832

 100%   5417 (longest request)

 

Notice with many more requests per second, the time to process each request has increased significantly to over 400 ms. I saw that a few of the requests didn't even return a response -- a failed request.

The bottlenecks required I modify specific configuration settings in Apache2 to address these performance issues. The Apache2 server ships with a selection of Multi-Processing Modules (MPMs) which are responsible for binding to network ports on the machine, accepting requests, and dispatching children to handle the requests. For instance, I  could adjust the MaxClients or ServerLimit directive to improve the number of concurrent connections the server can handle. I could also tweak the KeepAliveTimeout or Timeout settings to optimize how long connections are kept open.
 

⚙️ Identifying and Addressing Bottlenecks

Here are key optimization steps:

1. Modify Apache2 MPM Configuration

Edit /etc/apache2/mods-enabled/mpm_worker.conf:

<IfModule mpm_worker_module>
    ServerLimit            200
    StartServers           25
    MaxRequestWorkers      5000
    MinSpareThreads        75
    MaxSpareThreads        250
    ThreadsPerChild        25
</IfModule>

2. Tune Web Gateway Settings

  • Max Server Connections: 8000
  • Server Response Timeout: 900
  • No Activity Timeout: 86401

Restart Apache after changes:

sudo service apache2 restart

🚀 Retesting Performance

Re-run ab with higher concurrency:

ab -n 2000 -c 75 https://yourserver/endpoint

Monitor improvements in:

  • Requests per second
  • Failed requests
  • Connection times

Repeating the earlier bench command:
ab -n 2000 -c 75 https://fhir.testintersystems.com/csp/healthshare/demo/fhir/r4/Patient/1

I now saw the following statistics

Server Hostname:        fhir.testintersystems.com

Concurrency Level:      75

Time taken for tests:   5.975 seconds

Complete requests:      2000

Failed requests:        0

Total transferred:      5290000 bytes

HTML transferred:       4606000 bytes

Requests per second:    334.75 [#/sec] (mean)

Time per request:       224.045 [ms] (mean)

Time per request:       2.987 [ms] (mean, across all concurrent requests)

Transfer rate:          864.67 [Kbytes/sec] received

 

Connection Times (ms)

                                     min                  mean[+/-sd]                median                        max

Connect:                      6                      136      24.6                 135                              286

Processing:                  7                      84        23.4                 82                                171

Waiting:                       3                      47        18.8                 45                                160

Total:                            13                    221      28.3                 219                              363

 

Percentage of the requests served within a certain time (ms)

  50%    219

  66%    223

  75%    227

  80%    229

  90%    257

  95%    281

  98%    296

  99%    312

 100%    363 (longest request)

Notice with the retest (after performance tuning) the total connection time has dropped by 50%, and 99% of our requests are being completed within 312 ms, compared to the previous 4.8 sec. Notice also we are no longer seeing any failed requests.

 

📊 Monitor System Performance

This short post mentioned a few factors that could limit overall HTTP performance. Memory, CPU, and disk utilization could also create performance limitations. To understand these performance bottlenecks, it may be necessary to monitor system performance over 30 minutes to several hours.

Use the IRIS system performance tool to identify server-side bottlenecks:

Do ^SystemPerformance

📝 Key Takeaways

  • Optimize Apache’s MPM settings for higher concurrency.
  • Fine-tune Web Gateway configurations to align with Apache limits.
  • Use Apache Bench iteratively to test and validate changes.

Performance optimization is an ongoing process—continuously monitor, test, and refine your configurations to meet growing demands.


For further details, refer to IRIS Web Gateway Documentation.

Happy optimizing! 🚀

1 novo comentário
Discussão (1)2
Entre ou crie uma conta para continuar
Artigo
· Jul. 19 1min de leitura

How to Delete Your Developer Community Account

Hi Community, 

If you've decided to leave the InterSystems Developer Community, we're sorry to see you go! This guide will walk you through the steps to permanently delete your account.

 

⚠️ Before you begin: please note that deleting your account is irreversible. If you simply want to stop receiving notifications, consider updating your notification settings. 

How to request account deletion:

1. Log in to the Developer Community.
2. Click on your profile picture in the top-right corner and go to the "Profile settings" tab.
3. Scroll all the way down and click on "Request account deletion":

4. In the popup, click "Yes, delete my account" to confirm.

 

Once we receive your request, our team will take care of it and notify you when the deletion is complete.

If there's anything we can do to improve your experience or if you have feedback to share before leaving, we'd love to hear from you.


 

💬 Need help? If you're unable to delete your account or have any questions, feel free to contact our team via private message on the Community.

Discussão (0)1
Entre ou crie uma conta para continuar
Artigo
· Jul. 19 3min de leitura

EE Sweatpants as Abstract Art: A Gallery Exhibition

 

Using EE sweatpants as a form of summary artwork creates a unique combination of normal consolation and creative expression. This project transforms simple clothing into a visible declaration that demanding situations conventional thoughts of artwork. By setting sweatpants in a gallery placing, it questions what artwork may be and the way normal items can convey deeper that means. The purpose is to reveal that even acquainted gadgets, like sweatpants, can function powerful equipment for artistic communication.

Transforming Clothing into Art

The idea of turning eeofficialshort.com sweatpants into abstract art focuses on their form, texture, and colour. In the exhibition, sweatpants are displayed in approaches that highlight their form and fabric. This technique invites viewers to peer garb beyond its sensible use, recognizing it as a medium for creativity. It emphasizes that artwork may be discovered in everyday items when presented with goal and concept.

Creating Visual Impact

The gallery setup makes use of lights, positioning, and association to decorate the visible enchantment of the sweatpants. Different angles and displays deliver out abstract patterns and shapes, making the clothing appear to be a chunk of modern-day art. This presentation encourages visitors to interpret the sweatpants in new approaches, that specialize in their aesthetic qualities in preference to just their function.

Challenging Traditional Art Forms

Displaying EE sweatpants as summary artwork questions the limits of conventional art. It moves far from conventional artwork and sculptures, showing that apparel can also function a creative medium. This technique invitations audiences to assume otherwise approximately what qualifies as art and the way everyday objects can turn out to be significant portions within a creative space.

Engaging the Audience

Visitors to the exhibition are endorsed to mirror on their perceptions of garb and artwork. The presentation activates questions on consolation, identification, and expression. Seeing sweatpants as art helps human beings apprehend that non-public belongings can deliver artistic value, especially when offered with a sparkling attitude. The show aims to encourage conversations approximately the character of artwork and regular lifestyles.

The Artistic Message of Comfort

The preference of EE sweatpants emphasizes comfort and familiarity. Their soft texture and relaxed suit signify ease and calmness. Incorporating them into an artwork placing challenges the concept that art have to be formal or problematic. Instead, it highlights that comfort and ease can also evoke strong emotional and visual responses.

Final Thoughts on the Exhibition

This gallery presentation shows that artwork may be made from easy, ordinary objects like EE sweatpants. It encourages viewers to peer past the floor and discover meaning in acquainted objects. Using apparel in this way opens new avenues for inventive expression, making art greater reachable and relatable to all of us. The challenge invitations a fresh observe what artwork can be inside the modern international.

Discussão (0)1
Entre ou crie uma conta para continuar