Welcome to the SRP Forum! Please refer to the SRP Forum FAQ post if you have any questions regarding how the forum works.

Can each OI user have their own transaction directory?

edited June 2023 in OpenInsight
Soon many of our OI users will be connecting to the same computer (terminal server) to run OI. This means that each of their OIs will write to the same "transaction" directory. Is there a way to make this directory user specific (e.g.: c:\user\\appdata )? Clearly, it's not possible to set this via the below UI, but can it be programmatically set at runtime on each user's running OI?


Comments

  • I would think the Set_Env routine would do this for you. You have me curious. Why would you want each user to have their own transaction folder? Doesn't that defeat the purpose?
  • edited June 2023
    We will have 1 computer that dozens of users connect to via RDP. Each user runs OI. Each OI will write to C:\TVCORYX.CC\OITRANSACT.

    Concerns:

    1. If you have multiple OIs writing stuff in there, could that not cause corruption?
    2. Out IT department has flagged this as a security vulnerability.
    3. Out IT department refuses to grant write permission for the users on that folder.

    So we want each user to have their own transaction directory that's inside their user folder.

    I think the SET_ENV thing will work.

    Thanks
  • What do you think is the purpose of the transact folder? I think you have the wrong impression.
  • edited June 2023
    Isn't it part of the "transactional processing" feature of OI?

    So, you can specify that several writes be part of a transaction, which means that each write writes to a temporary location (rather than updating the real database), and then when you run "commit", that temporary data is written to the real database.

    I could be totally wrong about this, which would be funny as I have believed this to be the case for many years.
  • Yes, you have the correct understanding. What confused me was the concern that "If you have multiple OIs writing stuff in there, could that not cause corruption?". Since these would be database tables, the whole point is for multiple OIs to write stuff there.

    However...that folder would not be managed by the UD so that could be a concern. Now I understand your IT departments concern over security as well. Real data would be written to an exposed folder.

    So why is not simply not pointing to a folder on the database server?
  • edited June 2023
    I see, so you're saying that the folder be located on a share that each user has access to? Good idea, no idea why we don't do it like that. I will ask my team.

    Although, the data on the share will still be unencrypted and accessible to the users. So not sure why our IT department will think the share is better.

    Can the transactional processing use the UD? If so, that would solve the security issues.
  • Now that we have that bit of communication barrier out of the way, I'm going to tell you something that will blow your mind: None of this matters.

    As it turns out, at least from our own testing and conversations with Revelation, OpenInsight does not support this path. Instead, OpenInsight hardcodes two paths: 1 and 100. Volume 1 stores the REVCOMMITLOG table and volume 100 stores the temporary transaction tables.
  • edited June 2023
    Well, I'm more confused now.

    What do you mean by 1 and 100?
    What do you mean by "the path is not supported" ? I can see stuff being written to C:\TVCORYX.CC\OITRANSACT.
  • 1 and 100 are local folders, relative to the OI folder. Check to see if they exist.

    What kind of stuff do you see written to C:\TVCORYX.CC\OITRANSACT?
  • edited June 2023
    "What kind of stuff do you see written to C:\TVCORYX.CC\OITRANSACT?"

    Good questions, just lots of lk ov gibberish. I will actually have a look at what's in these files.

    Btw, it might be that our "framework" code is writing stuff into this folder. I am looking into that too.
  • Well, that would be what transaction files would look like. So maybe your system is respecting the folder. If that's the case then perhaps my notes above do not apply. However, using a shared folder on the database server would still be recommended.
  • Well, I wasn't able to find the 1 and 100 folders. I looked in the directory containing oinsight.exe.

    BTW, is it possible for transactional processing to use the UD to write the temporary files?
  • Are you using UD 4.x or UD 5.x?
  • edited June 2023
    we are running lh47.exe TBH , I don't know much about linear hash, but I'm guessing lh47.exe is 4.x.
  • Yes, that is UD 4.7.x. In this case, if the folder is relative to the OpenInsight folder, the UD will already manage this folder using the configuration in the root REVPARAM file. If the folder is elsewhere, copy the REVPARAM file into this folder and it will be managed by the UD.
  • edited July 2023
    I moved the transaction volume to a folder on the database server (managed by the UD). Now users are saying it's too slow. I'm guessing it's got nothing to do with the volume being on the database server but rather that the folder currently contains 50k files (and growing). The reason it contains 50k files is that we have custom code that creates a "transaction table" for each table and user in our system. Do you know if this custom code is necessary? Shouldn't OI just handle all of the transaction stuff given a volume?

Sign In or Register to comment.