Design a data model to store N datasets along with the values of N parameters sets and the results of runs using the parameter values on the datasets

Let’s say we have N different input static datasets D_n, for example (don’t focus on the example but more on the concept here) using N=3;
a dataset D_1 composed of images,
a dataset D_2 of features
and a dataset D_3 of objects.

On each dataset, I can apply some parameters P_n to do some (simple or sometime quite complex) computations on it.

Let’s call a ‘run’, the results of the combination of the application of
some defined set of values for the image parameters P_1 applied to the images dataset D_1 (which would lead to some processed data D_1′ corresponding to the dataset D_1) +
some defined set values of the features parameters P_2 applied to the features dataset D_2 (which would lead to some processed data D_2′ corresponding to the dataset D_2) +
some defined set of values of the object parameters P_3 applied to the object dataset D_3 (which would lead to some processed data D_3′ corresponding to the dataset D_3) .

How would you designed a relational database (I’m using PostgreSQL but I guess it’s not important at this stage) so that we can store both 1) the results of each and every run using different sets of defined values for the parameters P_n on the datasets D_n and 2) the values or the parameters used for getting these results.

For the moment, each time I want to run the computations using different parameter values, I change these values in a config file, overwriting the previous ones, and I output results to files on the disk, which also got overwritten for each new run. But I’d like to keep them all now.
Another problem that I have is that I’m writing images and some geographical data on the disk, mainly raster files, which are quite huge, therefore it would probably not be a good idea to store them in the database but only keeping a link (to the file) in the DB.
Last but not least, if I store values for parameters in a parameter table in my database, I cannot run the computation in parallel on the same database as I would need different values setup in the same table for two different runs.

That’s why I’m searching to better design and organize my datasets and parameters when playing with different sets of values.

iphone – A security system on wifi from hotspot that runs on 2.4 ghz

I am making a security system to protect something very important in my room. Its the ink in printer. I have many enermies and they have done black magic on me so I am tring to fight the black magic by making holy water and taking ruqyah baths with it see the links below for information on:

  1. making holy water with prinitable Quran sheets. https://www.youtube.com/watch?v=ECWkTPaaTvw

2]Ruqyah baths. https://www.youtube.com/watch?v=DqklNcAvCRQ

3]black magic. https://www.youtube.com/watch?v=X2nUG5eMBus&list=PLv5GL22SuWj-SW-ZdlH62Sl8BMyTv58GI

The black magic allows these people to probe in my mind. So there is no point using for example corded locks. These people will go to all lenghths to contaminate this ink so it does not work, My mother is on their side and has the key to my room. Althogth these people want to contaminate this ink badly they also do not want to get caught at it or for me to no they have done it.

So i decided i will set up a motion camera in my room, that will allow me to see when motion is detected in my room.
As my mother will simple turn her wifi off. so i decided to get a moblie phone to make a wifi hotspot in my room to connect to my phone.

Now the problem is that everything works on 2.4 ghz. I think from the internet, its better to buy and andoid moblie than iphone to get a 2.4 ghz wifi, my question is will any of these mobiles do the job:

https://www.wish.com/product/5de87d0f2b774128cf48597b?hide_login_modal=true&from_ad=goog_shopping&_display_country_code=GB&_force_currency_code=GBP&pid=googleadwords_int&c=%7BcampaignId%7D&ad_cid=5de87d0f2b774128cf48597b&ad_cc=GB&ad_curr=GBP&ad_price=29.00&campaign_id=12686188707&retargeting=true&exclude_install=true&gclid=CjwKCAjw2ZaGBhBoEiwA8pfP_ijnFr5lsIjA2aLcS6p5RlfTj4seoj5nWKR1Yap8SNXLo5ADqJzSHRoCVwoQAvD_BwE&share=web

https://www.wish.com/product/5da177b91ad3a04112aeb57f?hide_login_modal=true&from_ad=goog_shopping&_display_country_code=GB&_force_currency_code=GBP&pid=googleadwords_int&c=%7BcampaignId%7D&ad_cid=5da177b91ad3a04112aeb57f&ad_cc=GB&ad_curr=GBP&ad_price=24.00&campaign_id=12686188707&retargeting=true&exclude_install=true&gclid=CjwKCAjw2ZaGBhBoEiwA8pfP_p_Ay0kHIgzCYmyxEbLjHQTvVKxgB1_kpLTuPUQwWnCvXTXk-pSVcxoCKdoQAvD_BwE&share=web

I am not rich so can only get cheap phones.

My second probelm is that this phone that make my 2.4 ghz internet in my room need to connect to my iphone 5s. I think this shoud be okay as its sending it to my e-mail account.

This is the plan i have but if you can think of a better security system i would like to know. Bear in mind these people can read my mind and are many people and are very driven to stop me for example if i get a pad lock and lock my printer in my suit case which i will also do, they will simple pick the lock.

javascript – Run notification script only once, even though script runs on multiple tabs

I use the following code inside a Tampermonkey script.

function scriptMain () {
    setTimeout(function(){
        GM_notification ( {
            title: 'Refresh Business Manager', text: 'Your about to be logged out of staging, click here to refresh your login.', image: 'https://i.stack.imgur.com/geLPT.png',
            onclick: () => {
                console.log ("My notice was clicked.");
                location.reload();
            }
        } );
    }, 5*1000);
    console.log ("Script main code ran.");
}

The code shows a notification whenever a browser tab is open for more than 5 seconds which includes a button to refresh the current browser tab. I wanna use this script to alert me every 20 minutes or so, that one of the logins in the browser is about to auto-logout.

The functionality works as expected, but if I have 5 tabs open from the site where im logged in, I will get 5 notifications when the page is about to run out. I would love to be able to tell from within the Tampermonkey script if this script is already running on another tab, to not execute or to maybe just be able to only show the notification once.

I have been looking into the Tampermonkey documentation for the following Grants:

GM_getTab(callback)
GM_saveTab(tab)
GM_getTabs(callback)

But I dont seem to be able to work out if this functionality would be possible or not.

Can someone help me shine some light on this topic, or perhaps share a solution?

Kafka Broker Runs locally via docker compose but fails in kubernetes with near identical config

Kafka broker runs beautifully when running locally via docker-compose.

version: "3"
services:
  zookeeper:
    image: 'bitnami/zookeeper:latest'
    ports:
      - '2181:2181'
    environment:
      - ALLOW_ANONYMOUS_LOGIN=yes
  kafka:
    image: 'bitnami/kafka:latest'
    ports:
      - '9092:9092'
    environment:
      - KAFKA_BROKER_ID=1
      - KAFKA_CFG_LISTENERS=PLAINTEXT://:9092
      - KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://127.0.0.1:9092
      - KAFKA_CFG_ZOOKEEPER_CONNECT=zookeeper:2181
      - ALLOW_PLAINTEXT_LISTENER=yes
    depends_on:
      - zookeeper

When running via kubernetes though

apiVersion: v1
kind: Service
metadata:
  name: zevrant-kafka-zookeeper-service
spec:
  ports:
    - port: 443
      targetPort: 2181
  selector:
    app: zevrant-kafka-zookeeper-service
---
apiVersion: v1
kind: Service
metadata:
  name: zevrant-kafka-service
spec:
  type: NodePort
  ports:Connection to node -1 (/<IP_ADDRESS>:30129) could not be established. Broker may not be available.
    - port: 443
      targetPort: 9092
      nodePort: 30129
  selector:
    app: zevrant-kafka-service
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: zevrant-kafka-zookeeper-service-deployment
  labels:
    app: zevrant-kafka-zookeeper-service
spec:
  replicas: 1
  selector:
    matchLabels:
      app: zevrant-kafka-zookeeper-service
  template:
    metadata:
      labels:
        app: zevrant-kafka-zookeeper-service
    spec:
      volumes:
        - name: zookeeper-data
          nfs:
            server: <IP_ADDRESS>
            path: /zookeeper
      imagePullSecrets:
        - name: regcred
      nodeSelector:
        architecture: amd64
      containers:
        - name: zevrant-kafka-zookeeper-service
          image: bitnami/zookeeper:3.7.0
          env:
            - name: ALLOW_ANONYMOUS_LOGIN
              value: "yes"
          ports:
            - containerPort: 2181
          volumeMounts:
            - name: zookeeper-data
              mountPath: /bitnami/zookeeper
        - name: zevrant-kafka-zookeper-ui-service
          image: elkozmon/zoonavigator:1.1.0
          ports:
            - containerPort: 9000
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: zevrant-kafka-service-daemonset
  labels:
    app: zevrant-kafka-service
spec:
  replicas: 1
  selector:
    matchLabels:
      app: zevrant-kafka-service
  template:
    metadata:
      labels:
        app: zevrant-kafka-service
    spec:
      volumes:
        - name: kafka-storage
          hostPath:
            path: /opt/kafka/dev/
      imagePullSecrets:
        - name: regcred
      nodeSelector:
        architecture: amd64
      containers:
        - name: zevrant-kafka-broker-service
          image: bitnami/kafka:2.8.0
          volumeMounts:
            - name: kafka-storage
              mountPath: /bitnami/kafka
          ports:
            - containerPort: 9092
          env:
            - name: ALLOW_PLAINTEXT_LISTENER
              value: "yes"
            - name: KAFKA_CFG_ZOOKEEPER_CONNECT
              value: "zevrant-kafka-zookeeper-service:443"
            - name: KAFKA_BROKER_ID
              value: "1"
            - name: KAFKA_CFG_LISTENERS
              value: "PLAINTEXT://0.0.0.0:9092"
            - name: KAFKA_CFG_ADVERTISED_LISTENERS
              value: "PLAINTEXT://<IP_ADDRESS>:30129"

The broker starts but repeatedly spams the error

INFO (Admin Manager on Broker 1): Error processing create topic request CreatableTopic(name='zevrant-video-stream', numPartitions=1, replicationFactor=1, assignments=(), configs=()) (kafka.server.ZkAdminManager)

I used the same command on both clusters to create the topic aside from the connection details and in both cases I ran the command from inside the running broker container.

Locally

kafka-topics.sh --create --topic zevrant-video-stream --zookeeper localhost:2181 --partitions 1 --replication-factor 1 --config retention.ms=86400000

Kubernetes

kafka-topics.sh --create --topic zevrant-video-stream --zookeeper zevrant-kafka-zookeeper-service:443 --partitions 1 --replication-factor 1 --config retention.ms=86400000

I’m not really sure why this works in one place and not the other.

Attempting to connect a producer to the kubernetes broker i receive

Connection to node -1 (/<IP_ADDRESS>:30129) could not be established. Broker may not be available.

When querying zookeeper for broker information, zookeeper shows the broker as connected

zkCli.sh get /brokers/ids/1


{"listener_security_protocol_map":{"PLAINTEXT":"PLAINTEXT"},"endpoints":("PLAINTEXT://<IP_ADDRESS>:9092"),"jmx_port":-1,"features":{},"host":"<IP_ADDRESS>","timestamp":"1622398259745","port":9092,"version":5}

What would cause the broker to connected, online, but unavailable?

Premium designed Gardening website & eStore. Runs 100% on autopilot

100% Automated Gardening Store/Blog, Valued @ $1,148, High Earning Potential
Premium designed Gardening website & eStore. No experience needed. Runs 100% on autopilot, New content being added every hour. Earn with Amazon Ads/Store. 15/yo Domain

Special BIN Buyers Bonuses INCLUDING ONE WHOLE YEAR of hosting ($120 VALUE)! Check the BIN Buyer Bonus section below

Click here to visit LearnOrganicGardening.com

LearnOrganicGardening.com is a professionally designed site created on WordPress, the most popular website platform on the planet. This makes it easy for you to update, edit, and change the site with no technical coding skills.

You don’t need to have any special knowledge about websites. I will be showing you how to run the website step-by-step.

This is a rare turn-key opportunity to start your own business and to make a full-time income on auto-pilot in the HOT Gardening market.

Additionally, I set the website to run on autopilot. New content is added every day. Which keeps visitors coming to your site and making you more money.

This is very easy for beginners to make some extra income with little effort.

The website also has its own eCommerce shop which you earn money from and you can easily add more products.

Since your site is already automated and is basically maintenance free you only need to concentrate on driving traffic to your site. The more traffic, the more money you will earn from your site. This is why we added full video courses, so you can become an expert at driving traffic to your site.

LearnOrganicGardening.com is a premium domain appraised at $1,148. The appraisal was done at GoDaddy.com. View the appraisal by clicking here.

The site is an authoritative 15-year-old aged domain. Confirm the age of the domain at WHOIS Domain tools by clicking here. Please read the section below ” Details on Aged Domains” to learn more about aged domains. The “Flippa Registration” date does not indicate the age of the domain and website.

How Does LearnOrganicGardening.com Generate Revenue?

eCommerce Store – The site generates revenue through your store. Please go to the site and visit the store area. There you will see hundreds of products that will be linked to your Amazon affiliate account (We will help you set your account up if needed). When visitors purchase products on your site, you get a commission.

Amazon Ads – We have also strategically placed Amazon ads in the content of your blog and videos that are on your site. When the site adds new content, these ads are automatically placed for you. The site automatically adds new content every hour to keep visitors coming back to your site, which means more earning potential for you.

Other Earning Potential – There are many ways that you can earn money with this site. Amazon is what we have on their now so you can start right away. This website supports multiple ad spaces, where you can place your ad code from your advertising partner. You can also use Google Adsense, Clickbank, PropellerAds, and even more affiliate programs.

The Website Includes The Following Features:-

1. Premium domain name valued by GoDaddy at $1,148.

2. 15-year-old aged domain for better authority and ranking with Google.

3. Highly brandable domain – LearnOrganicGardening.com

4. eCommerce Gardening Store with hundreds of Gardening products. You will be able to add more products if you want.

5. 100% Automated Website – No maintenance needed. New content automatically added every few hours

6. Easy to manage website (no coding skills needed)

7. 100s of Gardening videos. New video content automatically added every hour.

8. 100+ Gardening articles to keep visitors coming back and buying on your site.

9. User-friendly design that allows changes
SEMrush

10. Perfect for beginners

11. No experience needed

12. Premium Fully Licensed Theme

13. A customizable website with easy-to-use admin area

14. Professional web design

15. Mobile-ready website

16. Beautiful Full Image Mega Navigation Menu

17. Responsive design – looks great on laptops, tablets, and phones

18. Beautiful homepage slider

19. Easy monetization set up

20. Supports affiliate programs

21. Supports multiple ad networks

22. Flexible layout with many choices of ad placement

23. SEO Friendly

24. Full Social Media support – Facebook, Twitter, Linkedin, Google+, Pinterest, Linkedin, Instagram, YouTube

25. Contact form installed

26. Privacy Policy page included – A must for affiliate and ad networks

27. Terms and conditions page included – A must for affiliate and ad networks

28. Disclaimer page included – A must for affiliate and ad networks

29. About us page pre-created

30. I use a theme on the website, which has 100s of design options so that the design of every website can be completely changed. Layout, width, structure, color, design, everything can be changed so that you can change the website if you wish.

31. Easy to manage business built on WordPress, the world’s most popular content management system.

32. Optimized website for fast loading times to give the customer a flawless and easy experience on your site

What’s Included With This Sale?

A professionally designed website with great potential for earning income.

– Full installation and set up on hosting of your choice. (1 Year Free Hosting for BIN Buyers. $230 Value)

– Free transfer of the domain to your Godaddy account, which we will help you set up your free account. (If transferred outside of GoDaddy there may be a transfer fee)

– Free Input of affiliate links.

– All website content and graphics.

– After-sale support to help you start earning income right away.

– Training on how to manage your site.

– Marketing tips and strategies.

– Training to teach you everything you need to start generating online income.

BIN BUYER BONUS

If you purchase the site at our BIN BUYER Price you will get these bonuses.

1. 1 WHOLE YEAR OF HOSTING YOUR WEBSITE ($120 VALUE)

2. Advanced training on how to market your website to maximize profits.

3. Advanced training on how to manage, edit, update and add more to your sites

4. How to use free and paid ads to jumpstart your income within 30 days.

5. Amazon Affiliate Guide

6. Amazon Payday Secrets

7. Make Money With Amazon Guide

8. Ultimate Guide To Affiliate Marketing

9. Affiliate Marketing Success Secrets Revealed

10. Adsense Profit

Hours of Full Video Training Including:

11. 51 Top Traffic Sources – Here you will learn how you can start driving traffic to your site right away. More traffic, more earnings.

12. Website Traffic 101 – Learn everything you need to know about driving traffic to your website.

13. Affiliate Authority – You will learn how to master being an affiliate with this full video course.

14. FaceBook Traffic – This step-by-step master course will teach you how to drive traffic from FaceBook.

15. Social Media Authority – With this course you will learn how to drive crazy traffic to your site from other social networks like Twitter, Instagram, and more.

16. Advanced ClickBank Paycheck – This is a fully loaded course on teaching you how you can use ClickBank to earn more on your site.

What is Affiliate Marketing?

Affiliate marketing allows you to earn commissions by simply marketing other people’s services or products. As an affiliate, you will earn commissions from products sold on your site.

What makes affiliate marketing great is there is no need to process orders or do customer service. All that is done by the affiliate program.

Because you don’t have to worry about order fulfillment, you can concentrate on driving traffic to your website and generating more income.

There are literally thousands of products your visitors can choose from. We will also show you how you can add more products to your site.

One of the great things about affiliate marketing is that you can run your business from anywhere. You can enjoy that “laptop lifestyle” with this business.

Because you only have to concentrate on driving traffic and you don’t have to fulfill orders, you can easily scale and grow this business. I will be giving your resources and training on how to grow your business and maximize your profits.

Frequently Asked Questions

How Much Time Will Running This Business Take Up?

The time you spend on this business is entirely up to you. The site is ready to start generating commission for you as soon as you add your own affiliate links, so even if you only spend a few minutes a day on it you could start making money. On the other hand, if you want to make this to a full-time business, there is no limit to how far you can scale up your income. The step-by-step training I am including as a special bonus will teach you everything you need to know to maximize your profits.

Are there any expenses to run this business?

The only expense is hosting fees which will be about $11-$20 a month. I will also be giving you training and resources on paid traffic which can boost your business, but this is optional as I will be teaching you how to get free traffic to your website.

Why Am I Selling This Site?

I am a full-time internet marketer and web designer. Because of my commitments, I don’t have the time to dedicate to this site so I am passing the opportunity to you.

All the hard work of site development, graphics, coding, and acquiring and premium domain has all been done for you.

After purchase, the domain and website will be fully transferred to you.

DETAILS ON AGED DOMAINS

We want to be clear to our customers on what exactly an aged domain is. It can get a bit confusing when there are so many stats that show domain age and registration dates. To make this simpler for you to understand, below are the explanations of aged domains.

Re registration date shows when the last WHOIS record was updated with a new domain owner change. This date is not the age of the domain, but when the domain last changed ownership.

Established Site Date – This also does not indicate the age of the domain but rather the recorded date of when the domain/website went live in its current state.

Finding the Domain Age – Finding the age of a domain can be fairly easy with the correct tools. You can click here to look at the history of any domain. Simply go to the link and type in the domain you are looking up the age for.

When you reach the site you would simply look at the records of the WHOIS history to see approximately how old the domain is, the domain may be even-aged even further than this, but WHOIS Domain tools have been keeping records of domains for many years and are very accurate!

★★★ Good Luck ★★★

If you have any questions about this auction feel free to contact me. I’m always willing to help.

 

eulerian paths – For every nondeterministic Turing machine, must there exist an equivalent deterministic one that runs in no more than twice the time?

If this were the case, then we would have P=NP, since then any polynomial-time NTM could be made into a polynomial-time DTM.

Also, it is known that an NTM in time n can do more than a DTM in time n, that is, DTIME$(n)subsetneq{}$NTIME$(n)$, see https://people.math.gatech.edu/~trotter/papers/34.pdf

However, you asking whether NTIME$(f(n))$ is contained in DTIME$(2f(n))$. For any $finomega(n)$, one has DTIME$(2f(n))$=DTIME$(f(n))$, so your question boils down to whether NTIME$(f(n))supsetneq{}$DTIME$(f(n))$. This question seems open.

powershell – SQL Server Agent not executing part of Python script where it runs a third party exe file

I am trying to run a python script from a powershell script inside SQL Server Agent.

I was able to execute most job of a python script (Task1-Task2) except the last portion (Task3) where it runs a third party exe file called SQBConverter (from RedGate) which converts files from SQB format to BAK format.

When I manually run powershell script directly which runs python script, there is no issue.

I modified the “Log On As” from default (“Local System”) to my own (JDoh), and it executes the powershell within SQL Server Agent, but it only does the job except where it converts files from SQB to BAK format (Task3).

Without changing to my own (JDoh), it would not even executes the any job of python script.

enter image description here

enter image description here

I don’t think there is any issue with powershell script side because it still triggers python script when I changed the “Log On As” to “Local System”. It does not show error, but it shows as SQL Server Agent job completed. But, it does not run any tasks within python script at all.

So, I am guessing it might be something to do with SQL Server Agent not able to trigger/run the SQBConverter exe file.

Here is whole python code (ConvertToBAK.py) to give you the whole idea of logic. It does everything until where it converts from SQB to BAK (Task3: last two lines).

import os
from os import path
import datetime
from datetime import timedelta
import glob
import shutil
import re
import time, sys

today = datetime.date.today()
yesterday = today - timedelta(days = 1)
yesterday = str(yesterday)

nonhyphen_yesterday = yesterday.replace('-','')
revised_yesterday = "LOG_us_xxxx_multi_replica_" + nonhyphen_yesterday 

src = "http://dba.stackexchange.com/Z:TestPCCFTP"
dst = "Z:\TestPCC\Yesterday"
password = "Password"
path = "http://dba.stackexchange.com/Z:TestPCCFTP"
now = time.time()

### Task1:  To delete old files (5 days or older)
for f in os.listdir(path):
  f = os.path.join(path, f)
  if os.stat(f).st_mtime < now - 5 * 86400:
    if os.path.isfile(f):
      os.remove(os.path.join(path, f))

filelist = glob.glob(os.path.join(dst, "*"))
for f in filelist:
    os.remove(f)

### Task2: To move all files from one folder to other folder location
src_files = os.listdir(src)
src_files1 = (g for g in os.listdir(src) if re.match(revised_yesterday, g))

for file_name in src_files1:
    full_file_name = os.path.join(src, file_name)
    if os.path.isfile(full_file_name):
        shutil.copy(full_file_name, dst)   

### Task3: Convert from SQB format to BAK format (running SQBConverter.exe)     
for f in glob.glob(r'Z:\TestPCC\Yesterday\*.SQB'):  
    os.system( f'SQBConverter "{f}" "{f(:-4)}.bak" {password}' )

This is powershell code (Test.ps1):

$path = 'Z:TestPCC'
$file = 'ConvertToBAK.py'

$cmd = $path+"\"+$file  # This line of code will create the concatenate the path and file
Start-Process $cmd  # This line will execute the cmd 

This is screenshot of SQL Server Agent’s step:

enter image description here

I looked at the properties of SQBConverter exe file itself, and I granted FULL control for all users listed.

java – Maven project using EclipseLink for persistence runs on IDE, but fails when running from a built jar

I’m working on a maven project using eclipselink 2.7.8 for persistence. When I run it on my IDE (Netbeans 12.0) it works perfectly well, but when I attempt to run it from a built jar it doesn’t.

This is the stack trace when I use the jar

Exception in thread "main" Local Exception Stack:
Exception (EclipseLink-30005) (Eclipse Persistence Services - 2.7.8.v20201217-ecdf3c32c4): org.eclipse.persistence.exceptions.PersistenceUnitLoadingException
Exception Description: An exception was thrown while searching for persistence archives with ClassLoader: jdk.internal.loader.ClassLoaders$AppClassLoader@2cdf8d8a
Internal Exception: javax.persistence.PersistenceException: Exception (EclipseLink-28018) (Eclipse Persistence Services - 2.7.8.v20201217-ecdf3c32c4): org.eclipse.persistence.exceptions.EntityManagerSetupException
Exception Description: Predeployment of PersistenceUnit (MyPersistenceUnit) failed.
Internal Exception: java.lang.NullPointerException
        at org.eclipse.persistence.exceptions.PersistenceUnitLoadingException.exceptionSearchingForPersistenceResources(PersistenceUnitLoadingException.java:129)
        at org.eclipse.persistence.jpa.PersistenceProvider.createEntityManagerFactoryImpl(PersistenceProvider.java:118)
        at org.eclipse.persistence.jpa.PersistenceProvider.createEntityManagerFactory(PersistenceProvider.java:191)
        at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:80)
        ...
Caused by: javax.persistence.PersistenceException: Exception (EclipseLink-28018) (Eclipse Persistence Services - 2.7.8.v20201217-ecdf3c32c4): org.eclipse.persistence.exceptions.EntityManagerSetupException
Exception Description: Predeployment of PersistenceUnit (MyPersistenceUnit) failed.
Internal Exception: java.lang.NullPointerException
        at org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.createPredeployFailedPersistenceException(EntityManagerSetupImpl.java:2109)
        at org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.predeploy(EntityManagerSetupImpl.java:2085)
        at org.eclipse.persistence.internal.jpa.deployment.JPAInitializer.callPredeploy(JPAInitializer.java:104)
        at org.eclipse.persistence.jpa.PersistenceProvider.createEntityManagerFactoryImpl(PersistenceProvider.java:107)
        ... 15 more
Caused by: Exception (EclipseLink-28018) (Eclipse Persistence Services - 2.7.8.v20201217-ecdf3c32c4): org.eclipse.persistence.exceptions.EntityManagerSetupException
Exception Description: Predeployment of PersistenceUnit (MyPersistenceUnit) failed.
Internal Exception: java.lang.NullPointerException
        at org.eclipse.persistence.exceptions.EntityManagerSetupException.predeployFailed(EntityManagerSetupException.java:233)
        ... 19 more
Caused by: java.lang.NullPointerException
        at org.eclipse.persistence.internal.jpa.metadata.MetadataProject.hasEntity(MetadataProject.java:1441)
        at org.eclipse.persistence.internal.jpa.metadata.accessors.objects.MetadataAnnotatedElement.isOneToMany(MetadataAnnotatedElement.java:693)
        at org.eclipse.persistence.internal.jpa.metadata.accessors.classes.ClassAccessor.buildAccessor(ClassAccessor.java:609)
        at org.eclipse.persistence.internal.jpa.metadata.accessors.classes.ClassAccessor.addAccessorFields(ClassAccessor.java:438)
        at org.eclipse.persistence.internal.jpa.metadata.accessors.classes.ClassAccessor.addAccessors(ClassAccessor.java:410)
        at org.eclipse.persistence.internal.jpa.metadata.accessors.classes.ClassAccessor.preProcess(ClassAccessor.java:1225)
        at org.eclipse.persistence.internal.jpa.metadata.accessors.classes.EmbeddableAccessor.preProcess(EmbeddableAccessor.java:304)
        at org.eclipse.persistence.internal.jpa.metadata.MetadataProject.processStage1(MetadataProject.java:1851)
        at org.eclipse.persistence.internal.jpa.metadata.MetadataProcessor.processORMMetadata(MetadataProcessor.java:579)
        at org.eclipse.persistence.internal.jpa.deployment.PersistenceUnitProcessor.processORMetadata(PersistenceUnitProcessor.java:629)
        at org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.predeploy(EntityManagerSetupImpl.java:2006)
        ... 17 more

My persistence.xml:

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.1" xmlns="http://xmlns.jcp.org/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd">
      <persistence-unit name="MyPersistenceUnit" transaction-type="RESOURCE_LOCAL">
        <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
        ...
        <exclude-unlisted-classes>false</exclude-unlisted-classes>
        <properties>
            <property name="javax.persistence.jdbc.url" value="jdbc:h2:./bd/MyPersistenceUnit"/>
            <property name="javax.persistence.jdbc.user" value=""/>
            <property name="javax.persistence.jdbc.driver" value="org.h2.Driver"/>
            <property name="javax.persistence.jdbc.password" value=""/>
            <property name="javax.persistence.schema-generation.database.action" value="create"/>
        </properties>
    </persistence-unit>
</persistence>

My pom.xml:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    
    <modelVersion>4.0.0</modelVersion>
    <groupId>xxxx.xxxxx</groupId>
    <artifactId>Service</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>jar</packaging>
    
    <properties>      
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.source>11</maven.compiler.source>
        <maven.compiler.target>11</maven.compiler.target>
    </properties>
    
    <dependencies>
        <dependency>
            <groupId>org.eclipse.persistence</groupId>
            <artifactId>eclipselink</artifactId>
            <version>2.7.8</version>
        </dependency>
        
        <dependency>
            <groupId>com.h2database</groupId>
            <artifactId>h2</artifactId>
            <version>1.4.194</version>
        </dependency>

        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter-api</artifactId>
            <version>5.7.0</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter-engine</artifactId>
            <version>5.7.0</version>
            <scope>test</scope>
        </dependency>

        <dependency>          
            <groupId>org.fusesource.jansi</groupId>
            <artifactId>jansi</artifactId>
            <version>2.3.2</version>
            <type>jar</type>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
            <type>jar</type>
        </dependency>        
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <artifactId>maven-assembly-plugin</artifactId>
                <executions>
                    <execution>
                        <id>example</id>
                        <configuration>
                            <archive>
                                <manifest>
                                    <mainClass>xxxx.xxxxx.service.demonstration.MainDemo</mainClass>
                                </manifest>
                            </archive>
                            <descriptorRefs>
                                <descriptorRef>jar-with-dependencies</descriptorRef>
                            </descriptorRefs>
                            <appendAssemblyId>false</appendAssemblyId>
                        </configuration>
                        <phase>package</phase>
                        <goals>
                            <goal>single</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>

        </plugins>
    </build>

</project>

I suspect that it’s something to do with how maven is building the jar, since it works fine on the IDE. I have tried to utilize different eclipselink versions too, but that didn’t seem to help (I started this project using 2.5.2 but updated after I had problems due to incompatibilities with some Java 8 features)

What is suggested way to use iHostedService of .NET core or Windows service when process runs for exponential hour time (up till hours)?

I wanted to create a background job in which I want to use the retry mechanism for that I want to use the Polly. My requirement is like this:

  1. the First retry should be done after 2 hours
  2. the Second retry should be done after 4 (2^2) hours
  3. the Third retry should be done after 8 (2^3) hours.

In short, I want to retry after exponential hours timings. To implement this I have 3 ways:

Assume that I want to post orders to Amazone S3. I got a queue of 50 orders, In which some orders (assume 40 orders) are retried the first time, 6 orders are retried 2nd time, 3 orders retried 3rd time and 1 order retried 4 times on the specific period of time. As per my knowledge, it is not possible to run the iHostedService in exponential timings. If any please let me know. Assume that it is possible then orders have many states, like some orders to be retried 1st time, some are 2nd time and so, on. So, in this case, orders which are retried to be the first time should be executed after 2 hours, orders with 2nd retry should be after 4 hours, etc. My question is in case we find a way to do it how can we accomplish that goal?. Assume that I am going to run the iHostedService service after x number of hours using CRON job.

In this approach, everything is the same as the per above approach, but instead of creating iHostedService, I will create a separate windows service. Here, after some time, things that I have to check that the windows service is running in the background.

With the help of this. And thinking of setup the retry timeout in the hours. But I am afraid with the internal mechanism of the same. Like if I set it like that, will it cause any performance issues on the production server? I am assuming that to achieve the goal, its thread/process continuously running on the server and utilizes the server resources.

I need your help to define the approach which is best for me? which is provide the best performance by utilizing lesser server resources. Above is my research, you can suggest any other brand new ways too. Which can be helpful for me.