New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

MDB file created with 3.8.0.0 and Server 2012 R2 WMF5 #91

Closed
megamorf opened this Issue Mar 21, 2016 · 4 comments

Comments

Projects
None yet
2 participants
@megamorf
Contributor

megamorf commented Mar 21, 2016

Hey guys,

I've used the recently released 3.8.0.0 version of the xPSDesiredStateConfiguration module to set up a demo Pull Server. It seems you've changed the db provider to ESENT for Server 2012 R2 in #88. But here's the thing: my "C:\inetpub\PSDSCPullServer\web.config" contains these lines:

<appSettings>
    <add key="MaxConcurrentRequests" value="10000" />
    <add key="MaxRequestsPerTimeslot" value="10000" />
    <add key="TimeslotSize" value="1" />
    <add key="dbprovider" value="ESENT" />
    <add key="dbconnectionstr" value="C:\Program Files\WindowsPowerShell\DscService\Devices.edb" />
    <add key="ConfigurationPath" value="C:\Program Files\WindowsPowerShell\DscService\Configuration" />
    <add key="ModulePath" value="C:\Program Files\WindowsPowerShell\DscService\Modules" />
    <add key="RegistrationKeyPath" value="C:\Program Files\WindowsPowerShell\DscService" />
  </appSettings>

Yet it still creates an mdb in the DSC Service directory:

PS H:\> ls "C:\Program Files\WindowsPowerShell\DscService"


    Verzeichnis: C:\Program Files\WindowsPowerShell\DscService


Mode                LastWriteTime         Length Name
----                -------------         ------ ----
d---s-       17.03.2016     16:49                Configuration
d---s-       17.03.2016     16:49                Modules
-a----       13.01.2016     04:59        1310720 Devices.mdb
-a----       21.03.2016     17:26             39 RegistrationKeys.txt

Upon registration of a Pull server client via ReportServerWeb resource the edb is created:

PS H:\> ls "C:\Program Files\WindowsPowerShell\DscService"


    Verzeichnis: C:\Program Files\WindowsPowerShell\DscService


Mode                LastWriteTime         Length Name
----                -------------         ------ ----
d---s-       17.03.2016     16:49                Configuration
d---s-       17.03.2016     16:49                Modules
-a----       21.03.2016     18:33        1056768 Devices.edb
-a----       13.01.2016     04:59        1310720 Devices.mdb
-a----       21.03.2016     18:33           8192 edb.chk
-a----       21.03.2016     18:33         131072 edb.log
-a----       21.03.2016     18:33         131072 edb00001.log
-a----       21.03.2016     18:33         131072 edbres00001.jrs
-a----       21.03.2016     18:33         131072 edbres00002.jrs
-a----       21.03.2016     18:33         131072 edbtmp.log
-a----       21.03.2016     17:26             39 RegistrationKeys.txt
             21.03.2016     18:33        1056768 tmp.edb

I guess it makes sense to point this out in the documentation. Thoughts?

@megamorf

This comment has been minimized.

Show comment
Hide comment
@megamorf

megamorf Mar 21, 2016

Contributor

I see that the Errors and StatusData are now binary fields in comparison to plain text in the mdb :(

dbresult

Contributor

megamorf commented Mar 21, 2016

I see that the Errors and StatusData are now binary fields in comparison to plain text in the mdb :(

dbresult

@NarineM

This comment has been minimized.

Show comment
Hide comment
@NarineM

NarineM Mar 21, 2016

Contributor

@megamorf ,
Devices.mdb is created in DSC Service directory for supporting downlevel OS such as Win8 and Win2008 R2 Server. xWebService resource automatically installs the database provider for you based on the OS type you are installing pull server on. It is documented in xWebService resource. On Windows 2012 R2 full sku you can still switch to mdb if that is a requirement for you by changing the app setting in the web.config to use Jet OLE, but keep in mind that OLE is not supported on Windows 2012 R2 Core and Jet is deprecated provider in 2016.

Contributor

NarineM commented Mar 21, 2016

@megamorf ,
Devices.mdb is created in DSC Service directory for supporting downlevel OS such as Win8 and Win2008 R2 Server. xWebService resource automatically installs the database provider for you based on the OS type you are installing pull server on. It is documented in xWebService resource. On Windows 2012 R2 full sku you can still switch to mdb if that is a requirement for you by changing the app setting in the web.config to use Jet OLE, but keep in mind that OLE is not supported on Windows 2012 R2 Core and Jet is deprecated provider in 2016.

@megamorf

This comment has been minimized.

Show comment
Hide comment
@megamorf

megamorf Mar 21, 2016

Contributor

Ah thanks for the clarification. I didn't know that OLE isn't supported on 2012 R2 Core.
I think it's worth adding this to the documentation. I'll go ahead and create a PR for that.

PS: Can you recommend a tool that allows me to read the binary fields in the edb?

Contributor

megamorf commented Mar 21, 2016

Ah thanks for the clarification. I didn't know that OLE isn't supported on 2012 R2 Core.
I think it's worth adding this to the documentation. I'll go ahead and create a PR for that.

PS: Can you recommend a tool that allows me to read the binary fields in the edb?

@NarineM

This comment has been minimized.

Show comment
Hide comment
@NarineM

NarineM Mar 21, 2016

Contributor

@megamorf
If you use REST API to query Errors and StatusData fields you will see them in plain text regardless you use ESENT or OLE providers.
For a given node (identified by AgentID that can be retrieved by running glcm cmdlet in powershell) you can get the assiated reports as shown in below example:

Invoke-WebRequest –Uri "http://name:port/PSDSCPullServer/PSDSCPullServer.svc/Nodes(AgentId='your_agent_id')/Reports" -ContentType "application/json;odata=minimalmetadata;streaming=true;charset=utf-8"
-UseBasicParsing `
-Headers @{Accept = "application/json";ProtocolVersion = "2.0"}

Contributor

NarineM commented Mar 21, 2016

@megamorf
If you use REST API to query Errors and StatusData fields you will see them in plain text regardless you use ESENT or OLE providers.
For a given node (identified by AgentID that can be retrieved by running glcm cmdlet in powershell) you can get the assiated reports as shown in below example:

Invoke-WebRequest –Uri "http://name:port/PSDSCPullServer/PSDSCPullServer.svc/Nodes(AgentId='your_agent_id')/Reports" -ContentType "application/json;odata=minimalmetadata;streaming=true;charset=utf-8"
-UseBasicParsing `
-Headers @{Accept = "application/json";ProtocolVersion = "2.0"}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment