Jump to content

Wilton Ergon

uniGUI Subscriber
  • Posts

    626
  • Joined

  • Last visited

  • Days Won

    21

Posts posted by Wilton Ergon

  1. this was promised a long time ago, and so far we have no idea when it will be available, if unigui really wants to be used for systems with a lot of access,
    this option is of fundamental importance, today I have a bank server with 5 application servers, and I use nginx to balance the load,
    but due to the unigui architecture that has to maintain a user session, nginx ends up distributing as improperly configured,
    I imagine that the unigui balancer will better distribute how to study, as it must analyze and consider the number of open openings on each server.
    I have a lot of overload problems on some machines, I did everything to optimize my system,
    but the number of accesses is very large, I have peaks of more than 3000 users and even with 5 servers it is not working.
    I have a monthly expense of around 2,000 u $ a month with servers, and a high value for so little access.
    my system has many resources that demand a lot from the server, they are generated from report diaries.

    • Like 1
    • Upvote 1
  2. for x:=0 to self.components.count-1 do
      begin
       if self.components[x] is tuniquery then
          begin
            tuniquery(self.components[x]).afterscroll :=nil;
            tuniquery(self.components[x]).close;
          end;
      end

     

    this will disable afterscroll from all your queries, and close them.

  3. Sherzod, I already tried this, but the application running locally (localhost) does not have this problem
    the problem only occurs when I publish it on my server.
    it runs on the hyperserver
    here I have windows 10
    on server windows server 2019
    so if I do an example it will not show the problem.

  4. have you tried before creating the controls, use the suspendlayouts command and at the end resumelayouts?

     


    for each control created, the unigui will send a request to the browser to render the component, doing this 300 times will really generate a delay

    the command causes this to be done only 1x at the end of the process.

     

    about alerting other users, look for websockets, here in the forum there is an example created by a great collaborator, but it requires the purchase of an extra component.

  5. unigui  1.90.0.1547

    delphi 10.4

    sdac

    sql server 2019

    I have a problem that is making me sleepy.
    in a form I display the contents of a varchar (max) sql server field.
    when I run the application locally, the content is displayed correctly, when I run the same application on the server (hyperserver) some data is overlaid.
    I've tried everything and nothing works.

    it is not some hidden character that is causing this behavior.

    the only difference and the place of execution.

    remembering that both on my server and locally, and the exe that is running.

     

    I tried to make a test case to demonstrate this, but locally it works, so there is no way for me to send a sample to demonstrate the problem.

    this did not happen in the old version using sencha 6.7

     

    image.thumb.png.4911f8c340255bb9a8f1cb62aac055eb.png

     

    Running my server

     

    image.thumb.png.2fdf23cce48324bb97de8f0442906184.png

     

     

    text post in database.

    image.thumb.png.054a135ee92cab183c835e5070f10f3a.png

     

    display value in notepad++

    image.thumb.png.1943c4d11774addee3c6c9e964c43255.png

     

     

     

     

  6. I saw in the documentation, and it is good to avoid activating the sequenced option of the tunitimer.

    another way and in the timer, you can exchange messages by checking files in a folder, reading a file from a folder (plain text) and less costly than fetching it from your database.
    a fileexist, and better than a select from table.


  7. I create tunimdatepicket controls dynamically, but I can't set the aftercreate event to change the button's title.

    the code below works when the component is already on the screen. but it doesn't work when it's created dynamically.

     

     

    var cDateTimePicker:TUniMDatePicker

     

                        cDateTimePicker                  := TUniMDatePicker.Create(self);
                        cDateTimePicker.ClientEvents.UniEvents.Values['afterCreate'] :=
                                                          'function afterCreate(sender) '+
                                                          '{ '+
                                                          '    var me=sender.getPicker(); '+
                                                          '    if (me && !Ext.isWindows) { '+
                                                          '        me.getDoneButton().setText("OK"); '+
                                                          '        me.getCancelButton().setText("X") '+
                                                          '    } '+
                                                          '}';

  8. Farshad, I am anxious to allow the hyperserver on several servers, today I am using a linux server with ngnix to do the load balancer, I think that if this were done by the unigui itself, we would have more control, and would avoid the cost of this linux machine.

    for those who work with the public agency like me, the number of accesses, and exponential, I need a lot of machines to deal with this ..

     

    ..........

     

    since version 1542 we already have 4 months, with no news of what is in the script. this year, things are not going well, tell us what's going on.

     

    • Upvote 1
  9. I'm unifying all my sites in one, to make management easier, and to avoid these port problems, I had already deleted the log,
    I had about 120 sites using hyperserver, and each one going up 4 nodes, this generated almost 500 instances of my project in memory, working with only one site, and maintaining only 50 nodes, it seems to me to be more correct.
    anyway thank you.

  10. Just now, wilton_rad said:

    what range do you suggest, because I have other sites with numbers close by without a problem

    has a 100 port range between sites.
    and my hyperserver use
    maximum 4
    nodes

     

    image.png.dabb9736747986e9e3a25e7ba0cbcdf1.png

     

  11. GEPWEB_D.dll: 00003A50: 11:46:20 [TUniHyperNode.Terminate]:Node #0 forcefully terminated.
    GEPWEB_D.dll: 00003A50: 11:46:20 [HttpExtensionProc[10.0.3.14]]:Exception : Failed to initialize node: 0 : Addr: $06543681
    GEPWEB_D.dll: 000056A4: 11:46:21 []:Terminating ISAPI Server. Module Handle: 0000000006250000
    GEPWEB_D.dll: 000056A4: 11:46:21 [TUniServerModule]:Shutting Down Server.
    GEPWEB_D.dll: 000056A4: 11:46:21 [TUniHyperServer]:Terminating...
    GEPWEB_D.dll: 000056A4: 11:46:21 [TUniHyperNodeManager]:Terminating...
    GEPWEB_D.dll: 00002E68: 11:46:55 [TUniHyperNodeManagerWorker]:Failed to initialize node: 1
    GEPWEB_D.dll: 000056A4: 11:46:55 [TUniHyperNodeManager]:Terminated.
    GEPWEB_D.dll: 000056A4: 11:46:55 [TUniGUISessionManager]:Terminating Session manager.
    GEPWEB_D.dll: 000056A4: 11:46:55 [TUniGUISessionManager]:Stopping Cache Eraser...
    GEPWEB_D.dll: 000056A4: 11:46:55 [TUniGUISessionManager]:Cache Eraser Stopped.
    GEPWEB_D.dll: 000056A4: 11:46:55 [TUniGUISessionManager]:Destroying Worker Threads.
    GEPWEB_D.dll: 000056A4: 11:46:55 [TUniGUISessionManager]:Session manager terminated.
    GEPWEB_D.dll: 000056A4: 11:46:56 [TUniHyperServer]:Terminated.
    GEPWEB_D.dll: 000056A4: 11:46:56 [TUniServerModule]:Server Shutdown Completed.
    GEPWEB_D.dll: 000056A4: 11:46:56 []:ISAPI Server Terminated. Module Handle: 0000000006250000
    GEPWEB_D.dll: 000056A4: 11:46:56 []:<-------------------------------------------------------------->

     

    image.thumb.png.c7e6efd7c7d6430dbb34c52016f251df.png

    I am having problems starting my system on one of my servers, which check in the log and that an ip that does not exist on the computer.

    other sites on that same server open normally, and all of my sites use the same system.

    I already tried to disable the antivirus, kaspersky, and it didn't work.

     

     

    my  cfg hyperserver

    [transport]
    pool_size=0
    command_timeout=20000
    request_timeout=300000
    connect_timeout=20000

    [http_transport]
    start_port=33300

    [hyper_server]
    binary_name=GEPWEB_E.EXE
    initial_nodes=2
    max_nodes=4
    max_sessions=0
    sessions_per_nodes=0
    prompt_login=1
    persistent_node_zero=0
    port=8077
    url_path=
    url_referer=
    ext_root=[ext]\
    uni_mobile_root=[unim]\
    uni_root=[uni]\
    uni_packages_root=[unipack]\
    max_requests=500
    detailed_log=0
    server_title=GEPWEB
    antiflood_per_ip=0
    server_root=
    framework_files_root=
    session_one_per_ip=0
    server_build=1.90.0.1547

    [node_recycling]
    enabled=1
    recycle_after_secs=3600
    recycle_after_sessions=0
    recycle_after_idle_seconds=900
    recycle_when_empty=1
    recycle_after_idle_secs=900

     

    [custom_mimes]
    mime_0_ext=woff
    mime_0_type=application/font
    mime_1_ext=woff2
    mime_1_type=application/font
    mime_2_ext=ttf
    mime_2_type=application/font
    mime_3_ext=rem
    mime_3_type=Remessa
    mime_4_ext=ret
    mime_4_type=Retorno
    mime_5_ext=crm
    mime_5_type=Retorno Sicredi
    mime_6_ext=doc
    mime_6_type=word
    mime_7_ext=pdf
    mime_7_type=pdf

     

     

  12. this is an old problem, the only reliable event to capture completion of the system, and in the
    TUniMainModule.UniGUIMainModuleDestroy

    however, in this event, you no longer have access to the mainmodule components and objects.

    I did it like this:

    When I access my application, I save the connection data in a table with the section id, no destroy, and re-connect to the database and clear the connection data.

  13. in servermodule

    AntiFloodPerIP  prevents multiple access from the same ip, similar to ddos attacks or SYN Flood Attack

    WhipeIPList define a list of ips that can connect to your system

     

    attacks, DDOS must be implemented at the network layer, before reaching your server, and it does not depend on the unigui.

    whenever you capture something to execute sql queries, without parameterization,

    replace the content of the string by removing the character '(single quotes), this avoids sql injection

     

    Smurf Attacks -  I only know they are blue rs

    • Like 1
×
×
  • Create New...